Java - Доступность метода внутри пакета-частного класса? - программирование

Java - Доступность метода внутри пакета-частного класса?

Если у меня есть класс java, который является закрытым пакетом (объявлен с классом, а не "открытый класс" ), нет никакой разницы, если методы внутри объявляются общедоступными или защищенными или частными пакетами, верно? Так что я должен использовать, или когда я должен использовать это? Я немного смущен.

4b9b3361

Ответ 1

Если у меня есть класс java, который является закрытым пакетом (объявлен с классом, а не "открытый класс" ), нет никакой разницы, если методы внутри объявлены общедоступными или защищенными или частными пакетами, правильно?

Ну, может быть, не сразу. Но если вы (или в будущем) объявите "защищенный" или "общедоступный" класс, который наследуется из класса private-private, то видимость членов исходного класса do имеет значение.

Как указывает @kmccoy, объявление класса как окончательного исключает возможность подклассов.

Но это действительно только окошко. Если вы затем решите, что вам действительно нужно создавать подклассы, вы просто удаляете final... и затем возвращаетесь в ситуацию, когда выбор модификаторов доступа имеет значение.

IMO, суть в том, что вы должны выбрать наиболее подходящие модификаторы... даже если это не нужно прямо сейчас. Если ничего другого, ваш выбор модификаторов должен документировать ваше намерение относительно того, где лежат границы абстракции.

Ответ 2

Публичные методы внутри класса пакета являются общедоступными для классов в одном пакете. Но частные методы не будут доступны классам в одном пакете.