Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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