Несколько public классов в одном .class-файле

93
21 февраля 2022, 00:10

По какой причине нельзя создать несколько public-классов в одном .java-файле? Почему можно создавать без модификатора доступа?

P.S. Заранее извиняюсь за, возможно, глупый вопрос, но не смог найти ответ в Интернете.

Answer 1

Таково соглашение Java: публичный класс (public class) должен размещаться в 1-м файле название которого совпадает с именем класса.

Непубличные классы (классы с объявлением без слова public) могут размещаться сколько угодно в 1-м файле.

В сети можно прочитать множество теорий почему это так со всякими разными дурацкими версиями, но на самом деле все гораздо проще - это всего лишь соглашение: File Organization Convention

Лишним подтверждением того, что это всего лишь соглашение служит тот простой факт - в Kotlin и C# этого ограничения нет - там можно по всякому разному.

Answer 2

Потому что .class файлы - это результат работы компилятора. Эти файлы создаются компилятором на основе файлов с вашим кодом (source файлы, которые как правило .java), в которых вы в свою очередь можете объявить несколько классов в одном файле.

В Java существует 4 области видимости (private, public, protected, package-private). Модификаторов области видимости же 3(private, public, protected). Модификатор нужен чтобы определить зону видимости и он не обязателен - в этом случае устанавливается область видимости по умолчанию - package-private.

READ ALSO
Оптимизация кода (Android Studio, Java, Codestyle)

Оптимизация кода (Android Studio, Java, Codestyle)

Вот такой код у меня получился для воспроизведения радио через Exoplayer:

90
не подключается шрифт в CSS

не подключается шрифт в CSS

Есть шрифтСкачан из интернета, открывается на локальном компьютере, все отлично пытаюсь его примерить к обычной странице на обычном хостинге

160
Как редактировать хедер и футер

Как редактировать хедер и футер

Подскажите, как редактировать номера телефонов в хедере и футере на этом сайтеЯ так понимаю, что модуль не установлен, а только вручную

123
Как вывести символ рубля в письме?

Как вывести символ рубля в письме?

Надо вывести символ рубля в письмеКак это правильно сделать? Насколько я понял сторонние шрифты в письма подключать нельзя

106