Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

A) Написать класс проверяемого исключения LimitException, с конструктором

Арген Багылов Ученик (93), на голосовании 1 год назад
A) Написать класс проверяемого исключения LimitException, с конструктором LimitException(String message, Double remainingAmount) и методом getRemainingAmount(). b) Написать класс BankAccount с 1 полем Double amount - остаток на счете и методами getAmount() - возвращает текущий остаток на счете, deposit(Double sum) - положить деньги на счет, withDraw(Integer sum) - снимает указанную сумму со счета. c) Также метод withDraw() может сгенерировать исключение в том случае если запрашиваемая сумма на снятие больше чем остаток денег на счете. d) Написать Main класс где бы создавался счет клиента. Положить 20 000 сом на счет. e) Затем попытаться снять через бесконечный цикл, каждую итерацию по 6000 сом, при этом отлавливать исключение LimitException и при возникновении такого исключения снимать только ту сумму, которая осталась на счете и завершать бесконечный цикл
Голосование за лучший ответ
Зеленая бяка Просветленный (41309) 1 год назад
 class LimitException extends Exception { 
private Double remainingAmount;

public LimitException(String message, Double remainingAmount) {
super(message);
this.remainingAmount = remainingAmount;
}

public Double getRemainingAmount() {
return remainingAmount;
}
}

class BankAccount {
private Double amount;

public BankAccount(Double amount) {
this.amount = amount;
}

public Double getAmount() {
return amount;
}

public void deposit(Double sum) {
amount += sum;
}

public void withDraw(Double sum) throws LimitException {
if (sum > amount) {
throw new LimitException("Not enough funds on the account", amount);
}
amount -= sum;
}
}

class Main {
public static void main(String[] args) {
BankAccount account = new BankAccount(20000.0);
account.deposit(20000.0);
try {
while (true) {
account.withDraw(6000.0);
System.out.println("Withdrawn 6000");
}
} catch (LimitException e) {
System.out.println("LimitException caught: " + e.getMessage());
Double remainingAmount = e.getRemainingAmount();
account.withDraw(remainingAmount);
System.out.println("Withdrawn remaining " + remainingAmount);
break;
}
}
}
Похожие вопросы