Назад к вопросам
Junior
65
questionbank
Расскажи о модификаторах доступа в Java.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Модификаторы доступа управляют видимостью классов, членов класса (полей, методов, конструкторов) в Java.
Существует четыре модификатора доступа:
publicprotecteddefault(без модификатора)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 классов.