Должен или должен в имени файла Java
Я изучаю Java и только что столкнулся с 2 инструкциями:
- Класс должен иметь подходящее имя файла
- Помните, что имя файла Java должно соответствовать имени класса
Просить:
Должен в (2), как или другой должен (1)?? -> (1), (2).
Что правильно??
2 ответа
Как упоминалось в комментариях, это не так ясно, как может показаться на первый взгляд, отчасти потому, что JLS не требует хранения пакетов в файловой системе:
7,6. Объявления типов верхнего уровня:
В том и только в том случае, если пакеты хранятся в файловой системе (§7.2), хост-система может выбрать принудительное ограничение, что это ошибка времени компиляции, если тип не найден в файле с именем, состоящим из имени типа плюс расширение (например,.java или.jav), если выполняется одно из следующих условий:
[...]
Итак, ваш ответ в основном:
Это может быть обязательным, в зависимости от вашего компилятора.
Чтобы быть полностью точным:
- Общественный класс X должен сидеть в
X.java
(см. хороший ответ пользователя Hulk для этого "must") - Помимо этого, непубличные классы Y, Z должны жить в
Y.java
а такжеZ.java
, но они также могут войти в X.java
Например, стандарт кодирования Google подчеркивает это второе правило. У вас должен быть один класс верхнего уровня на файл, и тогда имя класса должно совпадать с именем файла.
Любые другие действия, скорее всего, приведут в замешательство любого опытного программиста на Java. И сбивать с толку ваших читателей всегда плохая идея.