частные и защищенные не имеют смысла для класса/интерфейса верхнего уровня (не члена).
Они применимы только к классам, которые могут быть переменными, константами, конструкторами, методами, классами и интерфейсами.
Почему:
(1) частное: Что может быть смысл/цель, если мы определим класс как частные. Его область должна быть частной для некоторых областей. доступ по умолчанию уже является приватным пакетом. И никто не хочет, чтобы класс был закрытым исходным файлом (возможно, это объясняется), возможно, это не хорошая практика программирования, потому что Java-приложения, наконец, организованы в виде пакетов, но не в терминах исходных файлов. Любой исходный файл должен быть частью некоторого пакета, поэтому в широком/конечном представлении каждый класс/интерфейс является частью некоторого пакета, а не только некоторого .java-файла. Так неприменимо.
(2) protected: Если что-то защищено, оно должно быть доступно только внутри пакета и только для подкласс в других пакетах. Чтобы расширить класс в другом пакете, он должен быть доступен для всех классов в других пакетах, но protected говорит, что класс должен быть доступен только для расширенных классов. Это своего рода тупиковая ситуация. Так неприменимо.
Источник: Мои данные
Внутренние классы могут быть частными. –
Нет, это не зависит от A – SlowAndSteady