В Java для хранения классов используются пакеты. В одном пакете можно хранить описание нескольких классов. Разрешается вкладывать один пакет в другой. Модификаторы доступа позволяют ограничивать доступ к членам класса. С точки зрения доступа нас интересует следующие способы взаимодействия классов в пакетах:
- Один и тот же класс
- Подкласс класса в этом же пакете
- Класс не являющийся подклассом в этом же пакете
- Подкласс класса в другом пакете
- Класс не являющийся подклассом в другом пакете
Это все варианты взаимодействия которые возможны. Существуют следующие модификаторы доступа: private, отсутсвующий модификатор доступа, protected, public. Взаимосвязь изображена в таблице.
| private
| не указан модификатор доступа
| protected | public | Один и тот же класс | да
| да
| да
| да
| Подкласс класса в этом же пакете | нет
| да
| да
| да
| Класс не являющийся подклассом в этом же пакете | нет
| да
| да
| да
| Подкласс класса в другом пакете | нет
| нет
| да
| да
| Класс не являющийся подклассом в другом пакете | нет
| нет
| нет
| да
|
Правила доступа из данной таблицы относятся только к членам класса. Для класса, который не является вложенным доступно только 2 модификатора доступа: public и доступ заданный по умолчанию. Если класс отмечен модификатором public, то он виден любому коду, если используется модификатор доступа по умолчанию, то такой класс доступен только внутри пакета. Класс, который объявлен как public должен быть единственным публичным классом в файле и имя файла должно совпадать с именем публичного класса.
|