В именах классов Java предполагается, что они чувствительны к регистру, поэтому у Java не должно быть проблем с ним. Проблема должна исходить от файловых систем с файловыми системами, многие из которых не включены.
Я пробовал это в Linux, и я мог создавать разные классы с тем же именем, но с различной капитализацией и использовать их. Поскольку у меня нет Windows-машины, я не могу проверить, как это будет работать (или если оно вообще работает) в Windows (или любой другой ОС, если на то пошло), но я бы не стал поощрять классы именования, подобные этому.
О чем ты говоришь?
Имя класса не является производным от имени файла, а из содержимого файла (т.е. имя класса, как оно указано в файле).
Независимо от того, обрабатывает ли файловая система или ОС имена файлов как нечувствительные к регистру, не имеет значения.
MyClass
, имя файл должен быть MyClass
, независимо от правил чувствительности к регистру файловой системы / OS. Да, это может быть myclass
в нечувствительной к регистру системе, но тогда это не сработает.
Положив его на потомство, но ответ на вопрос Windows на этот вопрос таков: Несколько классов в одном файле Java, каждый с основным методом - неожиданное поведение?
Вы не можете по официальному соглашению об именах. Вы должны назвать свой класс, используя CamelCase, начиная с Верхнего регистра.
В Linux вы можете это сделать, но это очень плохая идея. Полученный вами код/классы не будут переносимыми.
И вы обнаружите проблемы с инструментами управления версиями, IDE, другими ОС, некоторыми JVM и т.д.
Например: вы можете использовать символы, отличные от английского (utf8) для ваших классов. У меня есть классы с испанскими именами (с такими символами, как ñ, Ñ, á, à и т.д.). Вскоре или позже это будет проблемой, потому что не все файловые системы работают с utf8 (некоторые используют ansi-like, ascii или что-то еще). Очень длинные имена могут быть неприятностями. Некоторые файловые системы имеют ограничения на длину имени, например, файловые системы ISO-9660, некоторые версии FAT и т.д.
Оставайтесь на безопасном пути:)