Ответ 1
нет спецификатора доступа!= public
Никакой модификатор не является приватным пакетом. check doc
У меня есть два класса в двух разных пакетах. Для одного класса я определил конструктор, не устанавливая для него модификатор доступа. Я хочу создать экземпляр объекта этого класса в другом пакете и получить ошибку "the constructor xxx() is not visible
".
Если я определяю доступ, измененный на public
, это нормально. Я думал, что конструкторы общедоступны по умолчанию?
нет спецификатора доступа!= public
Никакой модификатор не является приватным пакетом. check doc
Нет, это не так. По умолчанию они имеют видимость пакета.
Доступ по умолчанию (по умолчанию...) по умолчанию. Также известен как частный пакет. Рассмотрите: если они были public
по умолчанию, как бы вы указали, что конструктор не был public
, а на самом деле был приватным пакетом? Нет ключевого слова, соответствующего закрытому пакету, с которым указывается это.
Если вы не написали модификатор доступа, он имеет значение по умолчанию, что означает закрытый пакет. Например. ни один класс вне пакета не может получить к нему доступ.
Нет. они имеют спецификатор доступа по умолчанию. то есть они имеют видимость пакета.
Вы можете использовать модификаторы доступа в объявлении конструктора, чтобы контролировать, какие другие классы могут вызвать конструктор. Если вы не объявляете конструктор явно открытым, он отображается только в том же пакете, где он был объявлен (доступ к пакету).
В классе весь метод без модификатора доступа имеет видимость пакета. Тем не менее, в интерфейсах методы всегда имеют общественную видимость.