Должен или должен в имени файла Java

Я изучаю Java и только что столкнулся с 2 инструкциями:

  1. Класс должен иметь подходящее имя файла
  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. И сбивать с толку ваших читателей всегда плохая идея.

Другие вопросы по тегам