Загрузка данных


public class Main {
    public static void main(String[] args) {
        BankAccount acc1 = new BankAccount("№101", "Алексей", 5000.0);
        BankAccount acc2 = new BankAccount("№102", "Мария", 12000.0);
        BankAccount acc3 = new BankAccount("№103", "Иван", 3500.0);

        acc1.deposit(1500.0);
        acc2.withdraw(2000.0);
        acc3.deposit(4000.0);

        System.out.println("--- Попытка снять слишком много денег ---");
        acc1.withdraw(10000.0); 
        System.out.println();

        BankAccount highest = acc1;
        if (acc2.balance > highest.balance) {
            highest = acc2;
        }
        if (acc3.balance > highest.balance) {
            highest = acc3;
        }

        System.out.println("--- Счет с наибольшим балансом ---");
        highest.displayAccount();
        System.out.println();

        System.out.println("--- Итоговое состояние всех счетов ---");
        acc1.displayAccount();
        acc2.displayAccount();
        acc3.displayAccount();
    }
}

class BankAccount {
    String accountNumber;
    String ownerName;
    double balance;

    public BankAccount(String accountNumber, String ownerName, double balance) {
        this.accountNumber = accountNumber;
        this.ownerName = ownerName;
        this.balance = balance;
    }

    public void deposit(double amount) {
        balance += amount;
    }

    public boolean hasEnoughMoney(double amount) {
        return balance >= amount;
    }

    public void withdraw(double amount) {
        if (hasEnoughMoney(amount)) {
            balance -= amount;
        } else {
            System.out.println("Ошибка: Недостаточно средств на счете пользователя " + ownerName);
        }
    }

    public void displayAccount() {
        System.out.println("Счет: " + accountNumber + " | Владелец: " + ownerName + " | Баланс: " + balance + " руб.");
    }
}