Доступ к методу Java

У меня есть вопрос о публичных и приватных классах в Java. Например, если у вас есть публичный метод внутри частного класса, может ли публичный метод быть доступен другим публичным/приватным классам? Заранее спасибо.


person Wang-Zhao-Liu Q    schedule 04.07.2012    source источник


Ответы (3)


Чтобы иметь возможность вызывать метод внутри класса, метод, выполняющий вызов, должен иметь доступ к самому классу. Следовательно, методы класса, внутри которого определен приватный класс, будут иметь доступ к публичному методу, а методы других классов не будут иметь доступа.

Конечно, если частный класс наследует открытый класс или реализует открытый интерфейс, методы базового класса или интерфейса будут видны всем.

person Sergey Kalinichenko    schedule 04.07.2012

Зависит от. Если общедоступный метод определен общедоступным интерфейсом, вызывающие объекты могут получить к нему доступ через этот интерфейс. В противном случае они не смогут получить ссылку на него, не используя приватный класс (который они не видят).

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

person Thilo    schedule 04.07.2012

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

person Sandy Drake    schedule 06.05.2013
comment
Не правда. Вложенные классы могут быть закрытыми. - person Jesper; 06.05.2013