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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.