Write a program named bank.java that allows you to set up checking accounts
and loan accounts. This file should include 3 classes: Customer, CheckingAccount, LoanAccount. The CheckingAccount and LoanAccount classes inherit
from the Customer class.
Create an ArrayList of 5 Checking Account customers and
an ArrayList of 5 Loan Account customers. The program should be set up in a
loop with the following menu options: |
Customer Class |
|
Variable Names | Variable Description |
String FName, LName | Customer's first and last name. |
String Email | Customer's e-mail address. |
int CustomerTransactions | The total number of transactions (deposits and withdrawals) made by the customer. |
static double BankBalance | The bank's total balance (static). You should change this variable when customers make deposits, withdrawals, take loans, and make loan payments. |
static int NumberCustomers | The total number of customers at the bank (static). Increment this variable in the CheckAccount and LoanAccount constructors. |
CheckingAccount Class |
|
Variable Names | Variable Description |
private double CheckingBalance | The customer's checking account balance. |
Methods Names | Methods Description |
CheckingAccount(String theLName, String theFName, String theEmail, double OpeningDeposit) | The constructor should (1) initialize the name and email variables, (2) set CheckingBalance to OpeningDeposit, (3) add the OpeningDeposit to the BankBalance, (5) increment NumberCustomers. |
getCheckingBalance() | The Get method is needed since CheckingBalance is Private. |
Deposit(Amount) | Deposit money into the customer's account (include the amount as a parameter). Remember to increment CustomerTransactions and add Amount to BankBalance. |
Withdraw(Amount) | Withdraw money from the customer's account (include the amount as a parameter). If the customer overdrafts, charge a $25 fee. Remember to increment CustomerTransactions and subtract Amount from BankBalance. |
LoanAccount Class |
|
Variable Names | Variable Description |
private double LoanBalance | The customer's remaining loan principle. |
Methods Names | Methods Description |
LoanAccount(String theLName, String theFName, String theEmail, double OpeningLoan) | The constructor should: (1) initialize the name and email, (2) set LoanBalance to OpeningLoan * 1.25 for a 25% interest premium, (3) subtract the OpeningLoan from BankBalance, (4) increment NumberCustomers. |
getLoanBalance() | Get method since LoanBalance is private |
MakeLoan(Amount) | Add this amount and a 25% interest premium to the LoanBalance. Remember to increment CustomerTransactions and subtract Amount from BankBalance. |
MakePayment(Amount) | Subtract Amount from the LoanBalance. If LoanBalance <= 0, output a message (e.g. "Customer X just payed off his/her loan!"). Remember to increment CustomerTransactions and add Amount to BankBalance. |
How to Declare an ArrayList of Objects
In your main program, declare two ArrayLists
- one for CheckingAccount and one for LoanAccount. You can use the data below to get started.
ArrayList<CheckingAccount> Check = new ArrayList<CheckingAccount>();
Check.add(new CheckingAccount("Kirk","David","dkirk@dcccd.edu",10000.0));
Check.add(new CheckingAccount("Spock","Mister","tribbles@starfleet.gov",500.0));
Check.add(new CheckingAccount("Scott","Hulu","hulu@aol.com",75.0));
ArrayList<LoanAccount> Loan = new ArrayList<LoanAccount>();
Loan.add(new LoanAccount("Zeus","Apollo","apollo@gmail.com",5000));
Loan.add(new LoanAccount("Einstein","Amy","amy@yahoo.com",1000));
Loan.add(new LoanAccount("Caesar","Julie","julie@hotmail.com",500));
Printing all Accounts
To print all accounts you can use a for loop
to step through each ArrayList element.
for (int i=0; i<Check.size(); i++)
{
System.out.println (i + "\t" + Check.get(i).GetLName() + ", " + Check.get(i).GetFName()
+ "\t" + Check.get(i).getCheckingBalance() + "\t" +
Check.get(i).CustomerTransactions);
}
Retrieving (static) Bank Information
For the static variables, remember that you
can use any of the array elements and either the Check class or Loan class -
they all point to the same variable. The following two lines give you the
same answer:
System.out.println( Check.get(0).BankBalance
);
System.out.println( Loan.get(0).BankBalance
);
Example Output
//Option 1 to print bank information ==================================================== | Bank of Eastfield Information | | Total Bank Balance: 4075.0 | Total Bank Customers: 6 ====================================================
//Option 2 to print
checking accounts |