Please write a bankaccount class that will work with the following classes, (Sav
ID: 3742907 • Letter: P
Question
Please write a bankaccount class that will work with the following classes,
(SavingsAccount, CheckingAccount, Loan. I have added the class files below.)
SavingsAccount class:
class SavingsAccount extends BankAccount{
String AccountNumber;
double SavingAmount;
public SavingsAccount(){
}
public SavingsAccount(String AccountNumber, double SavingAmount){
this.AccountNumber = AccountNumber;
this.SavingAmount = SavingAmount;
}
public String getAccountNumber() {
return AccountNumber;
}
public void setAccountNumber(String AccountNumber) {
this.AccountNumber = AccountNumber;
}
public double getSavingAmount() {
return SavingAmount;
}
public void SetSavingAmount(double SavingAmount) {
this.SavingAmount = SavingAmount;
}
@Override
public String toString(){
return "Savings[ accountNumber: "+ AccountNumber + ", savingAmount: " + SavingAmount + "]";
}
@Override
public boolean equals(Object other){
if(this == other)
return true;
if(!(other instanceof SavingsAccount) ){
return false;
}
SavingsAccount s = (SavingsAccount)other;
return Double.compare(SavingAmount, s.SavingAmount) ==0 && AccountNumber.equals(s.AccountNumber);
}
public void Saving1(){
System.out.println("Saving Account1");
}
public void Saving2(){
System.out.println("Saving Account2");
}
public void Saving3(){
System.out.println("Saving Account3");
}
}
------------------------------------------------------------------
CheckingAccount class
class CheckingAccount extends BankAccount{
String AccountNumber;
double CheckingAmount;
public CheckingAccount(){
}
public CheckingAccount(String AccountNumber, double CheckingAmount){
this.AccountNumber = AccountNumber;
this.CheckingAmount = CheckingAmount;
}
public String getAccountNumber() {
return AccountNumber;
}
public void setAccountNumber(String accountNumber) {
this.AccountNumber = AccountNumber;
}
public double getCheckingAmount() {
return CheckingAmount;
}
public void setCheckingAmount(double checkingAmount) {
this.CheckingAmount = CheckingAmount;
}
@Override
public String toString(){
return "Checking[ accountNumber: "+ AccountNumber + ", checkingAmount: " + CheckingAmount + "]";
}
@Override
public boolean equals(Object other){
if(this == other)
return true;
if(!(other instanceof CheckingAccount) ){
return false;
}
CheckingAccount c = (CheckingAccount)other;
return Double.compare(CheckingAmount, c.CheckingAmount) ==0 && AccountNumber.equals(c.AccountNumber);
}
public void checking1(){
System.out.println("checking Account1");
}
public void checking2(){
System.out.println("checking Account2");
}
public void checking3(){
System.out.println("checking Account3");
}
}
------------------------------------------------
Loan Class
class Loan extends BankAccount{
String AccountNumber;
double loanAmount;
public Loan(){
}
public Loan(String AccountNumber, double loanAmount){
this.AccountNumber = AccountNumber;
this.loanAmount = loanAmount;
}
public String getAccountNumber() {
return AccountNumber;
}
public void setAccountNumber(String AccountNumber) {
this.AccountNumber = AccountNumber;
}
public double getLoanAmount() {
return loanAmount;
}
public void setLoanAmount(double loanAmount) {
this.loanAmount = loanAmount;
}
@Override
public String toString(){
return "Loan[ accountNumber: "+ AccountNumber + ", loanAmount: " + loanAmount + "]";
}
@Override
public boolean equals(Object other){
if(this == other)
return true;
if(!(other instanceof Loan) ){
return false;
}
Loan l = (Loan)other;
return Double.compare(loanAmount, l.loanAmount) ==0 && AccountNumber.equals(l.AccountNumber);
}
public void loan1(){
System.out.println("loan Account1");
}
public void loan2(){
System.out.println("loan Account2");
}
public void loan3(){
System.out.println("loan Account3");
}
}
----------------------------------------------------------------------
Here is a driver program:
import java.util.ArrayList;
public BankAccountTester {
public static void main(String args[]){
ArrayList<BankAccount> bankAccounts = new ArrayList<BankAccount>();
Checking c1 = new Checking("123", 12345.78);
Savings s1 = new Savings("234", 456.78);
Loan l1 = new Loan("678", 9865.90);
Checking c2 = new Checking("111", 54321.78);
Savings s2 = new Savings("222", 8976.78);
Loan l2 = new Loan("333", 9000.90);
bankAccounts.add(c1);
bankAccounts.add(s1);
bankAccounts.add(l1);
bankAccounts.add(c2);
bankAccounts.add(l2);
bankAccounts.add(s2);
for(BankAccount account : bankAccounts){
if(account instanceof Checking){
System.out.println("Down Casting Checking Class Object");
Checking c = (Checking) account;
System.out.println(c.toString());
c.checking1();
c.checking2();
System.out.println();
}
else if(account instanceof Savings){
System.out.println("Down Casting Savings Class Object");
Savings s = (Savings) account;
System.out.println(s.toString());
s.saving1();
s.saving2();
System.out.println();
}
else if(account instanceof Loan){
System.out.println("Down Casting Loan Class Object");
Loan l = (Loan) account;
System.out.println(l.toString());
l.loan1();
l.loan2();
System.out.println();
}
}
}
}
Please make sure the BankAccount class works by displaying the output with your response.
Explanation / Answer
BankAccount.java
public class BankAccount {
}
__________
SavingsAccount.java
public class SavingsAccount extends BankAccount {
String AccountNumber;
double SavingAmount;
public SavingsAccount() {
}
public SavingsAccount(String AccountNumber, double SavingAmount) {
this.AccountNumber = AccountNumber;
this.SavingAmount = SavingAmount;
}
public String getAccountNumber() {
return AccountNumber;
}
public void setAccountNumber(String AccountNumber) {
this.AccountNumber = AccountNumber;
}
public double getSavingAmount() {
return SavingAmount;
}
public void SetSavingAmount(double SavingAmount) {
this.SavingAmount = SavingAmount;
}
@Override
public String toString() {
return "Savings[ accountNumber: " + AccountNumber + ", savingAmount: " +
SavingAmount + "]";
}
@Override
public boolean equals(Object other) {
if (this == other)
return true;
if (!(other instanceof SavingsAccount)) {
return false;
}
SavingsAccount s = (SavingsAccount) other;
return Double.compare(SavingAmount, s.SavingAmount) == 0 &&
AccountNumber.equals(s.AccountNumber);
}
public void saving1() {
System.out.println("Saving Account1");
}
public void saving2() {
System.out.println("Saving Account2");
}
public void Saving3() {
System.out.println("Saving Account3");
}
}
________________
CheckingAccount.java
public class CheckingAccount extends BankAccount {
String AccountNumber;
double CheckingAmount;
public CheckingAccount() {
}
public CheckingAccount(String AccountNumber, double CheckingAmount) {
this.AccountNumber = AccountNumber;
this.CheckingAmount = CheckingAmount;
}
public String getAccountNumber() {
return AccountNumber;
}
public void setAccountNumber(String accountNumber) {
this.AccountNumber = AccountNumber;
}
public double getCheckingAmount() {
return CheckingAmount;
}
public void setCheckingAmount(double checkingAmount) {
this.CheckingAmount = CheckingAmount;
}
@Override
public String toString() {
return "Checking[ accountNumber: " + AccountNumber +
", checkingAmount: " + CheckingAmount + "]";
}
@Override
public boolean equals(Object other) {
if (this == other)
return true;
if (!(other instanceof CheckingAccount)) {
return false;
}
CheckingAccount c = (CheckingAccount) other;
return Double.compare(CheckingAmount, c.CheckingAmount) == 0 &&
AccountNumber.equals(c.AccountNumber);
}
public void checking1() {
System.out.println("checking Account1");
}
public void checking2() {
System.out.println("checking Account2");
}
public void checking3() {
System.out.println("checking Account3");
}
}
_______________
Loan.java
public class Loan extends BankAccount {
String AccountNumber;
double loanAmount;
public Loan() {
}
public Loan(String AccountNumber, double loanAmount) {
this.AccountNumber = AccountNumber;
this.loanAmount = loanAmount;
}
public String getAccountNumber() {
return AccountNumber;
}
public void setAccountNumber(String AccountNumber) {
this.AccountNumber = AccountNumber;
}
public double getLoanAmount() {
return loanAmount;
}
public void setLoanAmount(double loanAmount) {
this.loanAmount = loanAmount;
}
@Override
public String toString() {
return "Loan[ accountNumber: " + AccountNumber + ", loanAmount: " +
loanAmount + "]";
}
@Override
public boolean equals(Object other) {
if (this == other)
return true;
if (!(other instanceof Loan)) {
return false;
}
Loan l = (Loan) other;
return Double.compare(loanAmount, l.loanAmount) == 0 &&
AccountNumber.equals(l.AccountNumber);
}
public void loan1() {
System.out.println("loan Account1");
}
public void loan2() {
System.out.println("loan Account2");
}
public void loan3() {
System.out.println("loan Account3");
}
}
________________
BankAccountTester.java
import java.util.ArrayList;
public class BankAccountTester {
public static void main(String args[]) {
ArrayList < BankAccount > bankAccounts = new ArrayList < BankAccount > ();
CheckingAccount c1 = new CheckingAccount("123", 12345.78);
SavingsAccount s1 = new SavingsAccount("234", 456.78);
Loan l1 = new Loan("678", 9865.90);
CheckingAccount c2 = new CheckingAccount("111", 54321.78);
SavingsAccount s2 = new SavingsAccount("222", 8976.78);
Loan l2 = new Loan("333", 9000.90);
bankAccounts.add(c1);
bankAccounts.add(s1);
bankAccounts.add(l1);
bankAccounts.add(c2);
bankAccounts.add(l2);
bankAccounts.add(s2);
for (BankAccount account: bankAccounts) {
if (account instanceof CheckingAccount) {
System.out.println("Down Casting Checking Class Object");
CheckingAccount c = (CheckingAccount) account;
System.out.println(c.toString());
c.checking1();
c.checking2();
System.out.println();
} else if (account instanceof SavingsAccount) {
System.out.println("Down Casting Savings Class Object");
SavingsAccount s = (SavingsAccount) account;
System.out.println(s.toString());
s.saving1();
s.saving2();
System.out.println();
} else if (account instanceof Loan) {
System.out.println("Down Casting Loan Class Object");
Loan l = (Loan) account;
System.out.println(l.toString());
l.loan1();
l.loan2();
System.out.println();
}
}
}
}
________________
Output:
Down Casting Checking Class Object
Checking[ accountNumber: 123, checkingAmount: 12345.78]
checking Account1
checking Account2
Down Casting Savings Class Object
Savings[ accountNumber: 234, savingAmount: 456.78]
Saving Account1
Saving Account2
Down Casting Loan Class Object
Loan[ accountNumber: 678, loanAmount: 9865.9]
loan Account1
loan Account2
Down Casting Checking Class Object
Checking[ accountNumber: 111, checkingAmount: 54321.78]
checking Account1
checking Account2
Down Casting Loan Class Object
Loan[ accountNumber: 333, loanAmount: 9000.9]
loan Account1
loan Account2
Down Casting Savings Class Object
Savings[ accountNumber: 222, savingAmount: 8976.78]
Saving Account1
Saving Account2
_________Thank You