Должны ли мы объявить открытый конструктор, когда класс объявлен как закрытый пакет? - PullRequest
16 голосов
/ 28 октября 2008

Я думаю, что в этом случае нет необходимости объявлять открытый конструктор, так как класс все равно недоступен вне пакета. Но есть ли какое-то скрытое влияние, когда класс имеет только закрытый конструктор пакета?

Ответы [ 2 ]

24 голосов
/ 28 октября 2008

Нет, вам не нужно объявлять открытый конструктор; Пакетные частные конструкторы будут так же полезны. Классы вне пакета в любом случае не смогут использовать конструктор, так как они не могут видеть класс.

4 голосов
/ 28 октября 2008

Если ваш класс является закрытым пакетом, то уровни доступа, указанные ключевым словом модификатора public вместе со стандартным закрытым пакетом уровень доступа конструктора, эквивалентны.

Однако вы можете указать поведение, которое вы намереваетесь применить к методу в случае изменения видимости класса во время разработки. Это может произойти, когда вы открываете некоторые API, которые ранее были внутренними. В этом случае выглядит более консервативным объявление конструктора как частного пакета, поскольку вы не открываете все двери одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...