Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Reconsider the following examples mentioned below BankAccount.java NegativeStartingBalance.java AccountTest.java First, modify the BankAccount class to include an additional field named interestRate of type double. Update

Reconsider the following examples mentioned below BankAccount.java NegativeStartingBalance.java AccountTest.java

First, modify the BankAccount class to include an additional field named interestRate of type double. Update the constructor accordingly. Recall the following cases of exceptions that can affect a bank account: A negative starting balance is passed to the constructor. A negative interest rate is passed to the constructor. A negative number is passed to the deposit method. A negative number is passed to the withdraw method. The amount passed to the withdraw method exceeds the accounts balance. In class, we only considered the first case. In this lab, you will create exceptions that represent the remaining 4 error conditions by extending the Exception class. Name your classes as follows: NegativeInterest.java NegativeDeposit.java NegativeWithdraw.java AmountWithdrawExceeds.java Write a driver program to test all your exception classes. Try out some scenarios that will throw exceptions.

BankAccount.java

/** The BankAccount class simulates a bank account. */

public class BankAccount { private double balance; // Account balance

/** This constructor sets the starting balance at 0.0. */

public BankAccount() { balance = 0.0; } /** This constructor sets the starting balance to the value passed as an argument. @param startBalance The starting balance. @exception NegativeStartingBalance When startBalance is negative. */

public BankAccount(double startBalance) throws NegativeStartingBalance { if (startBalance < 0) throw new NegativeStartingBalance(startBalance); balance = startBalance; }

/** This constructor sets the starting balance to the value in the String argument. @param str The starting balance, as a String. */

public BankAccount(String str) { balance = Double.parseDouble(str); }

/** The deposit method makes a deposit into the account. @param amount The amount to add to the balance field. */

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

/** The deposit method makes a deposit into the account. @param str The amount to add to the balance field, as a String. */

public void deposit(String str) { balance += Double.parseDouble(str); }

/** The withdraw method withdraws an amount from the account. @param amount The amount to subtract from the balance field. */

public void withdraw(double amount) { balance -= amount; }

/** The withdraw method withdraws an amount from the account. @param str The amount to subtract from the balance field, as a String. */

public void withdraw(String str) { balance -= Double.parseDouble(str); }

/** The setBalance method sets the account balance. @param b The value to store in the balance field. */

public void setBalance(double b) { balance = b; }

/** The setBalance method sets the account balance. @param str The value, as a String, to store in the balance field. */

public void setBalance(String str) { balance = Double.parseDouble(str); } /** The getBalance method returns the account balance. @return The value in the balance field. */

public double getBalance() { return balance; } }

NegativeStartingBalance.java

/** NegativeStartingBalance exceptions are thrown by the BankAccount class when a negative starting balance is passed to the constructor. */

public class NegativeStartingBalance extends Exception { /** This constructor uses a generic error message. */

public NegativeStartingBalance() { super("Error: Negative starting balance"); }

/** This constructor specifies the bad starting balance in the error message. @param The bad starting balance. */

public NegativeStartingBalance(double amount) { super("Error: Negative starting balance: " + amount); } }

AccountTest.java

/** This program demonstrates how the BankAccount class constructor throws custom exceptions. */

public class AccountTest { public static void main(String [] args) { // Force a NegativeStartingBalance exception. try { BankAccount account = new BankAccount(-100.0); } catch(NegativeStartingBalance e) { System.out.println(e.getMessage()); } } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Machine Learning And Knowledge Discovery In Databases European Conference Ecml Pkdd 2014 Nancy France September 15 19 2014 Proceedings Part I Lnai 8724

Authors: Toon Calders ,Floriana Esposito ,Eyke Hullermeier ,Rosa Meo

2014th Edition

3662448475, 978-3662448472

More Books

Students also viewed these Databases questions

Question

2 The role of economic theory in economics.

Answered: 1 week ago