The following BankAccount class is similar to that of the example in Worked Example 8.1. It should be illegal to construct bank accounts with a negative balance or interest rate.

Modify the constructor in this class, so that an IllegalArgumentException is thrown in these cases.

Complete the following file:

/** A bank account has a balance that can be changed by deposits and withdrawals. */ public class BankAccount { private double balance; private double interestRate; /** Constructs a bank account with a zero balance and no interest. */ public BankAccount() { balance = 0; interestRate = 0; } /** Constructs a bank account with a given interest rate. @balance initialBalance the initial balance @param rate the interest rate */ public BankAccount(double initialBalance, double rate) { balance = initialBalance; interestRate = rate; } /** Deposits money into the bank account. @param amount the amount to deposit */ public void deposit(double amount) { balance = balance + amount; } /** Withdraws money from the bank account. @param amount the amount to withdraw */ public void withdraw(double amount) { balance = balance - amount; } /** Gets the current balance of the bank account. @return the current balance */ public double getBalance() { return balance; } /** Adds the earned interest to the account balance. */ public void addInterest() { double interest = getBalance() * interestRate / 100; deposit(interest); } // This method checks your work. public static String check(double initialBalance, double rate) { try { BankAccount account = new BankAccount(initialBalance, rate); return "constructed"; } catch (IllegalArgumentException ex) { return "illegal argument"; } catch (Exception ex) { return "another error"; } } }