Java - доступность Метода в частном на пакет классе?

Меню File-> Настройки-> Редактор-> Общий-> Виртуальное Пространство и снятие флажка 'Позволяет размещение каре после конца строки'. Можно также снять флажок с другими опциями в панели Virtual Space.

10
задан mk12 29 August 2009 в 01:38
поделиться

2 ответа

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

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

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

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

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

18
ответ дан 3 December 2019 в 17:59
поделиться

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

4
ответ дан 3 December 2019 в 17:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: