Sobes.tech
Назад к вопросам
Junior — Middle
58

Объясните различия между уровнями доступа private, default (package-private), protected и public в языках программирования, например, в Java.

Компании, где спрашивали
Siberteam

Ответ от нейросети

sobes.tech AI

В Java уровни доступа определяют, где можно использовать члены класса (поля, методы):

  • private: доступ только внутри самого класса. Никакие другие классы, даже в том же пакете, не видят эти члены.

  • default (package-private): если не указан модификатор, доступ разрешён всем классам в том же пакете, но не из других пакетов.

  • protected: доступ разрешён классам в том же пакете и подклассам (даже если они в других пакетах).

  • public: доступ разрешён из любого места, без ограничений.

Пример:

package example;

public class MyClass {
    private int privateVar; // доступ только внутри MyClass
    int defaultVar;         // доступ внутри пакета example
    protected int protectedVar; // доступ внутри пакета и подклассам
    public int publicVar;    // доступ отовсюду
}

Таким образом, уровни доступа помогают контролировать инкапсуляцию и безопасность данных.