Question: (Java code, Computer science 1)Question 1 [15 marks] Modify the BankAccount class (see below the ---------) as follows: 1) Add an appropriate toString method; 2)
(Java code, Computer science 1)Question 1 [15 marks]
Modify the BankAccount class (see below the ---------) as follows:
1) Add an appropriate toString method;
2) Add an appropriate equals method;
3) Add a copy constructor;
4) Add an integer objectID field to each BankAccount object---this field should contain a sequential unique numeric ID that is assigned to each object when it is created (the very first object should have an ID of 1001;
5) Add a static method named objectsInMemory() that returns the number of BankAccount objects that are currently in memory;
6) Use a finalize() method to keep track of objects that are reclaimed by the garbage collector so that such reclaimed objects are not counted as being objectsInMemory. Write a small demo class that demonstrates your modified BankAccount class.
The demo can be like the following:
public static void main(String[] args) { ArrayList
Then the output would look like similar to the following: null objectID = 1002, balance = 100.0 objectID = 1003, balance = 100.0 null objectID = 1004, balance = 500.0 objectID = 1005, balance = 1000.0 The total number of account objects in memory is: 5 /* why 5 not 4? */ The account 1 is equal to account 2 Press any key to continue . . .
To be Modifed the BankAccount class: ---------------------------------------------------------------------
/** The BankAccount class simulates a bank account. */
public class BankAccount { private double balance; // Account balance
/** This constructor sets the starting balance at 0.0. */
public BankAccount() { balance = 0.0; } /** This constructor sets the starting balance to the value passed as an argument. @param startBalance The starting balance. */
public BankAccount(double startBalance) { balance = startBalance; }
/** This constructor sets the starting balance to the value in the String argument. @param str The starting balance, as a String. */
public BankAccount(String str) { balance = Double.parseDouble(str); }
/** The deposit method makes a deposit into the account. @param amount The amount to add to the balance field. */
public void deposit(double amount) { balance += amount; }
/** The deposit method makes a deposit into the account. @param str The amount to add to the balance field, as a String. */
public void deposit(String str) { balance += Double.parseDouble(str); }
/** The withdraw method withdraws an amount from the account. @param amount The amount to subtract from the balance field. */
public void withdraw(double amount) { balance -= amount; }
/** The withdraw method withdraws an amount from the account. @param str The amount to subtract from the balance field, as a String. */
public void withdraw(String str) { balance -= Double.parseDouble(str); }
/** The setBalance method sets the account balance. @param b The value to store in the balance field. */
public void setBalance(double b) { balance = b; }
/** The setBalance method sets the account balance. @param str The value, as a String, to store in the balance field. */
public void setBalance(String str) { balance = Double.parseDouble(str); } /** The getBalance method returns the account balance. @return The value in the balance field. */
public double getBalance() { return balance; } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
