public class BankAccount {
private String accountNumber;
private BigDecimal balance;
public BankAccount(String accountNumber, BigDecimal initialBalance) {
if (initialBalance.compareTo(BigDecimal.ZERO) < 0) {
throw new IllegalArgumentException("Начальный баланс не может быть отрицательным");
}
this.accountNumber = Objects.requireNonNull(accountNumber, "Номер счёта не может быть null");
this.balance = initialBalance;
}
public BigDecimal getBalance() {
return balance;
}
public void deposit(BigDecimal amount) {
if (amount == null || amount.compareTo(BigDecimal.ZERO) <= 0) {
throw new IllegalArgumentException("Сумма пополнения должна быть положительной");
}
this.balance = this.balance.add(amount);
}
public void withdraw(BigDecimal amount) {
if (amount == null || amount.compareTo(BigDecimal.ZERO) <= 0) {
throw new IllegalArgumentException("Сумма снятия должна быть положительной");
}
if (this.balance.compareTo(amount) < 0) {
throw new IllegalStateException("Недостаточно средств на счету");
}
this.balance = this.balance.subtract(amount);
}
}
public class BankAccount {
private String accountNumber;
private BigDecimal balance;
public BankAccount(String accountNumber, BigDecimal initialBalance) {
if (initialBalance.compareTo(BigDecimal.ZERO) < 0) {
throw new IllegalArgumentException("Начальный баланс не может быть отрицательным");
}
this.accountNumber = Objects.requireNonNull(accountNumber, "Номер счёта не может быть null");
this.balance = initialBalance;
}
public BigDecimal getBalance() {
return balance;
}
public void deposit(BigDecimal amount) {
if (amount == null || amount.compareTo(BigDecimal.ZERO) <= 0) {
throw new IllegalArgumentException("Сумма пополнения должна быть положительной");
}
this.balance = this.balance.add(amount);
}
public void withdraw(BigDecimal amount) {
if (amount == null || amount.compareTo(BigDecimal.ZERO) <= 0) {
throw new IllegalArgumentException("Сумма снятия должна быть положительной");
}
if (this.balance.compareTo(amount) < 0) {
throw new IllegalStateException("Недостаточно средств на счету");
}
this.balance = this.balance.subtract(amount);
}
}