Sobes.tech
Junior

Разкажи за модификаторите за достъп в Java.

sobes.tech AI

Отговор от 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 на класовете.