Назад к вопросам
Junior
65
questionbank

Расскажи о модификаторах доступа в Java.

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

Модификаторы доступа управляют видимостью классов, членов класса (полей, методов, конструкторов) в Java.

Существует четыре модификатора доступа:

  • public
  • protected
  • default (без модификатора)
  • private

Их видимость в различных контекстах:

Модификатор Внутри класса Внутри пакета В подклассе (в любом пакете) Везде
private Да Нет Нет Нет
default Да Да Нет Нет
protected Да Да Да Нет
public Да Да Да Да

Примеры использования:

public class Parent {

    private int privateField;       // Доступен только внутри класса Parent
    int defaultField;              // Доступен внутри пакета
    protected int protectedField;   // Доступен внутри пакета и в подклассах
    public int publicField;         // Доступен везде

    private void privateMethod() {} // Доступен только внутри класса Parent
    void defaultMethod() {}        // Доступен внутри пакета
    protected void protectedMethod() {} // Доступен внутри пакета и в подклассах
    public void publicMethod() {}   // Доступен везде
}
package another_package;

import some_package.Parent;

public class Child extends Parent {

    void accessFields() {
        // privateField = 10; // Ошибка: private
        defaultField = 20;   // Ошибка: default (в другом пакете)
        protectedField = 30; // Доступно: protected (в подклассе)
        publicField = 40;    // Доступно: public
    }

    void accessMethods() {
        // privateMethod(); // Ошибка: private
        // defaultMethod(); // Ошибка: default (в другом пакете)
        protectedMethod(); // Доступно: protected (в подклассе)
        publicMethod();  // Доступно: public
    }
}

Модификаторы применяются для инкапсуляции и управления API классов.