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

Requirements: Add one static variable and one static method to this class. // ma

ID: 3743039 • Letter: R

Question

Requirements:

Add one static variable and one static method to this class. // make a comment where you've added the static method

Mark a comment at the new additions: // M2 HOMEWORK STATIC

Implement the Comparable interface. Write the compareTo method. // leave a comment

In your driver/tester program, create an array or ArrayList of objects and sort them with the Java-provided sorting methods (which will use your compareTo method). //ArrayList already created but comment on how the compareto method is being used

Add one enum to your files. // leave a comment where enum is used

The enum must contain at least one field and at least one method.

Use your enum somewhere in one of your classes.

Mark a comment at this new addition.

------------------------------------------------------------------------------------------

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");

}

}

------------------------------------------------------------------------------------------

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("Checking Account");

Checking c = (Checking) account;

System.out.println(c.toString());

c.checking1();

c.checking2();

System.out.println();

}

else if(account instanceof Savings){

System.out.println("Savings Account");

Savings s = (Savings) account;

System.out.println(s.toString());

s.saving1();

s.saving2();

System.out.println();

}

else if(account instanceof Loan){

System.out.println("Loan Account");

Loan l = (Loan) account;

System.out.println(l.toString());

l.loan1();

l.loan2();

System.out.println();

}

}

}

}

Explanation / Answer

PROGRAM:
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

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote