Question: A Flexible Account Class File Account.java contains a definition for a simple bank account class with methods to withdraw, deposit, get the balance and account

A Flexible Account Class

File Account.java contains a definition for a simple bank account class with methods to withdraw, deposit, get the balance and account number, and return a String representation. Note that the constructor for this class creates a random account number. Save this class to your directory and study it to see how it works. Then modify it as follows:

1. Overload the constructor as follows:

public Account (double initBal, String owner, long number) - initializes the balance, owner, and account number as specified

public Account (double initBal, String owner) - initializes the balance and owner as specified; randomly generates the account number.

public Account (String owner) - initializes the owner as specified; sets the initial balance to 0 and randomly generates the account number.

2. Overload the withdraw method with one that also takes a fee and deducts that fee from the account.

File TestAccount.java contains a simple program that exercises these methods. Save it to your directory, study it to see what it does, and use it to test your modified Account class.

//************************************************************ 
// Account.java // // A bank account class with methods to deposit to, withdraw from, // change the name on, and get a String representation // of the account. 
//************************************************************ 
public class Account { 
private double balance; private String name; private long acctNum; 
//------------------------------------------------- 
//Constructor -- initializes balance, owner, and account number 
//------------------------------------------------- 
public Account(double initBal, String owner, long number) { 
balance = initBal; 

name = owner;

acctNum = number; 

}

//------------------------------------------------- 
// Checks to see if balance is sufficient for withdrawal. // If so, decrements balance by amount; if not, prints message. 
//------------------------------------------------- 
public void withdraw(double amount) { 
if (balance >= amount) 

else

balance -= amount; 
System.out.println("Insufficient funds"); 

}

//------------------------------------------------- 
// Adds deposit amount to balance. 
//------------------------------------------------- 

Chapter 7: Object-Oriented Design 109

public void deposit(double amount) 

{

balance += amount; 

}

//------------------------------------------------- 
// Returns balance. 
//------------------------------------------------- 
public double getBalance() { 
return balance; 

}

//------------------------------------------------- 
// Returns a string containing the name, account number, and balance. 
//------------------------------------------------- 
public String toString() { 
return "Name:" + name + 
" Account Number: " + acctNum + " Balance: " + balance; 

}

}

//************************************************************ 
// TestAccount.java // // A simple driver to test the overloaded methods of // the Account class. 
//************************************************************ 
import java.util.Scanner; 
 Scanner scan = new Scanner(System.in); 
public class TestAccount { 
public static void main(String[] args) { 
String name; double balance; long acctNum; Account acct; 
System.out.println("Enter account holder's first name"); 
name = scan.next(); 
acct = new Account(name); 
System.out.println("Account for " + name + ":"); System.out.println(acct); 
System.out.println(" Enter initial balance"); 
balance = scan.nextDouble(); 
acct = new Account(balance,name); 
System.out.println("Account for " + name + ":"); System.out.println(acct); 
System.out.println(" Enter account number"); acctNum = scan.nextLong(); acct = new Account(balance,name,acctNum); System.out.println("Account for " + name + ":"); System.out.println(acct); 
System.out.print(" Depositing 100 into account, balance is now "); 
acct.deposit(100); 
System.out.println(acct.getBalance()); System.out.print(" Withdrawing $25, balance is now "); 
acct.withdraw(25); 
System.out.println(acct.getBalance()); System.out.print(" Withdrawing $25 with $2 fee, balance is now "); 
acct.withdraw(25,2); 
System.out.println(acct.getBalance()); 

}

System.out.println(" Bye!"); 

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!