Книга: Основы программирования на Java
8.1.4. Ограничение доступа
8.1.4. Ограничение доступа
Java предоставляет несколько уровней защиты, обеспечивающих возможность тонкой настройки области видимости данных и методов. Из-за наличия пакетов Java должна уметь работать еще с четырьмя категориями видимости между элементами классов:
1. подклассы в том же пакете;
2. не подклассы в том же пакете;
3. подклассы в различных пакетах;
4. классы, которые не являются подклассами и не входят в тот же пакет.
В языке Java имеется три уровня доступа, определяемых ключевыми словами: private (закрытый), public (открытый) и protected (защищенный), которые употребляются в различных комбинациях. Содержимое ячеек таблицы определяет доступность переменной с данной комбинацией модификаторов (столбец) из указанного места (строка).
Есть несколько правил, которые помогут вам разобраться. Элемент, объявленный public, доступен из любого места. Все, что объявлено private, доступно только внутри класса и нигде больше. Если у элемента вообще не указан модификатор уровня доступа, то такой элемент будет виден из подклассов и классов того же пакета. Именно такой уровень доступа используется в языке Java по умолчанию. Если необходимо, чтобы элемент был доступен только подклассам, причем независимо от того, находятся ли они в данном пакете или нет — используйте protected.
Таблица 8.1 Таблица ограничения доступа
private |
модификатор отсутствует |
protected |
public |
|
тот же класс |
да |
да |
да |
да |
подкласс в том же пакете |
нет |
да |
да |
да |
независимый класс в том же пакете |
нет |
да |
да |
да |
подкласс в другом пакете |
нёт |
нет |
да |
да |
независимый класс в другом пакете |
нет |
нет |
нет |
да |
- 9.5.8. Ограничение канала
- Ограничение действий конкурентов
- Ограничение конкурентам доступа к необходимым ресурсам
- Ограничение доступа к разделяемым объектам
- Ограничение доступа клиентам
- 5.1. Ограничение перебора
- П2.4. Ограничение доступа
- 3.2.2. Определение прав пользователей и ограничение доступа к информационной базе
- 22.2.3. Ограничение доступа к файловой системе
- 11.2.2. Ограничение доступа
- 21.7.3. Ограничение доступа пользователя