← Назад к вопросам

Как работает сеттер?

2.3 Middle🔥 141 комментариев
#Spring Framework

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# Как работает сеттер в Java

Определение

Сеттер — это метод, который устанавливает значение приватного поля объекта. Это ключевой компонент инкапсуляции в Java, позволяющий контролировать доступ к данным объекта.

Синтаксис сеттера

public class Person {
    private String name;
    private int age;
    
    public void setName(String name) {
        this.name = name;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
}

Как это работает

  1. Метод вызывается: person.setName("John");
  2. Передача параметра: строка передаётся в параметр
  3. Присваивание: this.name = name; устанавливает значение приватного поля
  4. Возврат: метод завершает работу (void)

Преимущества сеттеров

  • Инкапсуляция: контроль доступа к приватным полям
  • Валидация: проверка входных данных перед присваиванием
  • Логирование: отслеживание изменений состояния объекта
  • Реактивность: запуск побочных эффектов в фреймворках

Пример с валидацией

public class BankAccount {
    private double balance;
    
    public void setBalance(double balance) {
        if (balance < 0) {
            throw new IllegalArgumentException("Баланс не может быть отрицательным");
        }
        this.balance = balance;
    }
}

Lombok аннотация

Для автоматизации генерации сеттеров:

import lombok.Setter;

@Setter
public class Product {
    private String title;
    private double price;
}

Lombok автоматически создаст setTitle() и setPrice().

Отличие от публичного поля

public String name; // нет контроля, плохо
private String name;
public void setName(String name) {
    if (name != null && !name.isEmpty()) {
        this.name = name;
    }
}

Сеттер дает нам полный контроль над данными класса.

Как работает сеттер? | PrepBro