> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-java/modifikatory-dostupa.md).

# Модификаторы доступа

Уровни доступа (access modifiers) в Java определяют, где и какие классы, методы, переменные и конструкторы могут быть доступны. Java имеет четыре уровня доступа:

1. **public**:
   * Публичные члены доступны из любого места в коде, включая другие пакеты.
   * Публичные классы, методы, переменные и конструкторы могут быть доступны в любом месте.

Пример:

```java
public class MyClass {
    public void myMethod() {
        // Код метода
    }
}
```

2. **private**:
   * Приватные члены доступны только внутри того же класса.
   * Они недоступны из других классов, включая подклассы и другие классы в том же пакете.

Пример:

```java
public class MyClass {
    private int myField;
    
    private void myMethod() {
        // Код метода
    }
}
```

3. **protected**:
   * Защищенные члены доступны только внутри того же класса, в подклассах и внутри того же пакета.
   * Они не доступны из любого места вне пакета, если класс не является подклассом.

Пример:

```java
public class MyClass {
    protected int myField;
    
    protected void myMethod() {
        // Код метода
    }
}
```

4. **default (package-private)**:
   * Если не указано никаких модификаторов доступа, то доступ будет иметь "по умолчанию" (package-private).
   * Члены с таким уровнем доступа доступны только внутри того же пакета, но не доступны из других пакетов.

Пример:

```java
class MyClass {
    int myField;
    
    void myMethod() {
        // Код метода
    }
}
```
