Есть ли способ определить частный класс в Java, к которому могут обращаться только другие классы в том же пакете?

У меня всегда был этот вопрос в голове, почему определение private классы в пакете в Java не возможны, как способ, которым мы можем определить его в namespace в .Net,

Допустим, у меня есть ds пакет в моем проекте Java. У меня есть два класса в именах Stack а также Queue внутри этого пакета. Оба эти класса должны использовать другой класс во имя ListNode, ListNode требуется только для других классов в ds пакет, и он не должен быть открыт для классов вне ds пакет.

Я могу определить ListNode как внутренние классы. Но в этом случае я должен определить это в обоих Stack а также Queue классы, и это также избыточно. Есть ли шаблон дизайна, чтобы обойти это? Если нет, пожалуйста, кто-нибудь хотя бы объяснит мне, почему это невозможно в Java!

2 ответа

Решение

В следующей таблице показан доступ к элементам, разрешенным каждым модификатором.

Access Levels
Modifier    Class   Package Subclass    World
public       Y        Y        Y          Y
protected    Y        Y        Y          N
no modifier  Y        Y        N          N
private      Y        N        N          N        

Отсюда

Можете заглянуть в пакет приватных классов. документы

Если вы опускаете public/private/protected из вашего класса, он доступен только другим классам в том же пакете

Другие вопросы по тегам