> 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/getter-i-setter.md).

# Геттер и сеттер

Геттеры (getter) и сеттеры (setter) - это методы, которые используются для получения и установки значений полей объекта соответственно. Они предоставляют доступ к закрытым полям класса извне класса, соблюдая принцип инкапсуляции.

```java
public class MyClass {
    private int value;

    // Геттер для поля value
    public int getValue() {
        return value;
    }

    // Сеттер для поля value
    public void setValue(int newValue) {
        value = newValue;
    }
}
```

В этом примере `getValue()` - это геттер, который возвращает значение поля `value`, а `setValue()` - это сеттер, который устанавливает новое значение для этого поля.

Преимущества использования геттеров и сеттеров:

1. **Инкапсуляция**:
   * Геттеры и сеттеры позволяют скрыть реализацию работы с полями класса. Пользователи класса могут получать доступ к полям только через эти методы, что защищает данные от неправильного использования.
2. **Контроль доступа**:
   * Геттеры и сеттеры позволяют устанавливать правила доступа к полям класса. Например, можно сделать поле доступным только для чтения (без сеттера), только для записи (без геттера) или оба доступа.
3. **Гибкость**:
   * При необходимости можно добавить логику в геттеры и сеттеры, например, проверку допустимости значения перед его установкой или выполнение дополнительных действий при получении или установке значения.

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

```java
MyClass obj = new MyClass();
obj.setValue(10); // Установка значения поля
int value = obj.getValue(); // Получение значения поля
System.out.println(value); // Вывод значения
```
