Ответ
Состояние объекта — это совокупность значений всех его полей (атрибутов) в конкретный момент времени. Состояние определяет, как объект будет реагировать на вызовы методов, и может изменяться в течение его жизни.
Ключевые аспекты:
- Инкапсуляция. Состояние обычно скрыто (
private) и доступно для изменения только через публичные методы (геттеры/сеттеры), что обеспечивает контроль над его целостностью. - Идентичность vs состояние. Два разных объекта могут иметь одинаковое состояние, но при этом оставаться разными сущностями.
- Зависимость поведения. Методы объекта часто используют его внутреннее состояние для вычисления результата.
Пример на Java:
public class BankAccount {
// Поля, определяющие состояние объекта
private String accountNumber; // Идентичность (обычно неизменна)
private double balance; // Изменяемое состояние
private boolean isActive; // Изменяемое состояние
public BankAccount(String number, double initialBalance) {
this.accountNumber = number;
this.balance = initialBalance;
this.isActive = true;
}
// Метод изменяет состояние
public void deposit(double amount) {
if (isActive && amount > 0) {
this.balance += amount; // Изменение состояния
}
}
// Метод читает состояние
public double getBalance() {
return balance;
}
}
// Использование
BankAccount acc = new BankAccount("12345", 100.0); // Состояние: balance=100.0, isActive=true
acc.deposit(50.0); // Состояние изменено: balance=150.0