Введение

Модификаторы доступа в Java — это ключевые слова, которые используются для указания доступности полей, методов, конструкторов и классов. Существует четыре модификатора доступа, каждый из которых определяет определенный уровень доступности:

  1. общедоступный: доступен из любого места.

2. защищено: доступ возможен из самого класса, пакета и подклассов.

3. Package-private (по умолчанию): доступ к нему можно получить внутри самого класса и только из пакета.

4. private: доступен только внутри класса

Публичный доступ

Присвоение полю модификатора доступа public позволяет получить доступ к нему из любого места. Однако важно помнить, что маркировка полей в классе как общедоступных считается плохой практикой, поэтому обычно членам класса Java присваивается модификатор доступа private (в духе инкапсуляции этих полей). ). Естественно, единственными полями, которые будут иметь модификатор доступа public, являются константы (поля, которые имеют модификатор final и поэтому не могут быть изменены).

Обычно классам присваивается модификатор доступа public, и каждый файл, содержащий класс, может иметь только один public класс. Этот общедоступный класс также должен иметь то же имя, что и имя файла.

Защищенный доступ

Доступ к защищенным полям возможен только из класса, в котором они объявлены, и из любого места в том же пакете. Поля с модификатором protected также доступны вне пакета, но только через наследование.

Классы верхнего уровня в Java не могут иметь модификатор доступа protected.

Частный пакет (доступ по умолчанию)

Отсутствие указания модификатора доступа для поля предоставляет ему доступ к пакету, который является областью доступа по умолчанию в Java. Package-private имеет тот же доступ, что и поле с модификатором protected, за одним исключением; подклассы не смогут получить доступ к этому полю. Следовательно, если класс наследуется от родительского класса, у которого есть поле без модификатора доступа; подкласс не будет иметь доступа к этому полю.

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

Частный доступ

Доступ к закрытым полям возможен только из класса, в котором они объявлены; это модификатор, обеспечивающий наименьший доступ в Java. Частныеполя не наследуются подклассами и не могут быть доступны где-либо за пределами класса.

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

Надеюсь, вы чему-то научились!

-Антон