Этот пример показывает, как методы могут изменять состояние объекта и принимать решения на основе значений полей.
У меня есть класс BankAccount с методами deposit() (пополнение) и withdraw() (снятие с проверкой баланса).
class BankAccount {
String owner;
double balance;
public void printInfo() {
System.out.println(owner + ": " + balance + "\n" + isActive + "\n");
}
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
if (amount > balance) {
System.out.println("Недостаточно средств для снятия");
} else {
balance -= amount;
}
}
}Класс BankAccountMain (создание объектов и вызов методов)
public class BankAccountMain {
public static void main(String[] args) {
BankAccount one = new BankAccount();
one.owner = "Заказчик 1";
one.balance = 1000.00;
one.deposit(10000); // пополняем на 10000
one.withdraw(500); // снимаем 500
one.printInfo();
BankAccount two = new BankAccount();
two.owner = "Заказчик 2";
two.balance = 5000.00;
two.deposit(5000); // пополняем на 5000
two.printInfo();
two.withdraw(12000); // пытаемся снять 12000 (больше чем есть)
}
}Вывод в консоли
Заказчик 1: 10500.0
Заказчик 2: 10000.0
Недостаточно средств для снятия
- Метод может принимать решения через
if— проверять условия withdraw()сначала проверяет, хватает ли денег- Если денег достаточно — снимает, если нет — выводит сообщение и не меняет баланс
- Методы могут изменять состояние объекта
(deposit(), withdraw())
| Шаг | balance до | amount | Результат |
|---|---|---|---|
| Начало | 1000.0 | — | — |
| deposit(10000) | 1000.0 → 11000.0 | 10000 | ✅ balance = 11000.0 |
| withdraw(500) | 11000.0 → 10500.0 | 500 | ✅ баланс уменьшился |
| Шаг | balance до | amount | Результат |
|---|---|---|---|
| Начало | 5000.0 | — | — |
| deposit(5000) | 5000.0 → 10000.0 | 5000 | ✅ balance = 10000.0 |
| withdraw(12000) | 10000.0 | 12000 | ❌ Недостаточно средств (balance остался 10000.0) |
if (amount > balance)— проверка, хватает ли денегbalance -= amount— сокращённая запись дляbalance = balance - amount- Если условие не выполняется (денег достаточно) — снимаем
- Если условие выполняется (денег не хватает) — выводим сообщение и НЕ меняем баланс
- Это называется валидация — проверка данных перед действием
⭐ Теперь я умею создавать методы, которые не только изменяют состояние объекта, но и проверяют условия. Это уже ближе к реальным программам!