*9.7 (The Account class) Design a class named Account that contains:
A private int data field named id for the account (default 0 ).
A private double data field named balance for the account (default 0 ).
A private double data field named annualInterestRate that stores the cur-
rent interest rate (default 0 ). Assume all accounts have the same interest rate.
A private Date data field named dateCreated that stores the date when the
account was created.
A no-arg constructor that creates a default account.
A constructor that creates an account with the specified id and initial balance.
The accessor and mutator methods for id , balance , and annualInterestRate .
The accessor method for dateCreated .
A method named getMonthlyInterestRate() that returns the monthly
interest rate.
A method named getMonthlyInterest() that returns the monthly interest.
A method named withdraw that withdraws a specified amount from the
account.
A method named deposit that deposits a specified amount to the account.
Draw the UML diagram for the class and then implement the class. (Hint: The
method getMonthlyInterest() is to return monthly interest, not the interest rate.
Monthly interest is balance * monthlyInterestRate . monthlyInterestRate
is annualInterestRate / 12 . Note that annualInterestRate is a percentage,
e.g., like 4.5%. You need to divide it by 100.)
Write a test program that creates an Account object with an account ID of 1122,
a balance of $20,000, and an annual interest rate of 4.5%. Use the withdraw
method to withdraw $2,500, use the deposit method to deposit $3,000, and print
the balance, the monthly interest, and the date when this account was created.
A private int data field named id for the account (default 0 ).
A private double data field named balance for the account (default 0 ).
A private double data field named annualInterestRate that stores the cur-
rent interest rate (default 0 ). Assume all accounts have the same interest rate.
A private Date data field named dateCreated that stores the date when the
account was created.
A no-arg constructor that creates a default account.
A constructor that creates an account with the specified id and initial balance.
The accessor and mutator methods for id , balance , and annualInterestRate .
The accessor method for dateCreated .
A method named getMonthlyInterestRate() that returns the monthly
interest rate.
A method named getMonthlyInterest() that returns the monthly interest.
A method named withdraw that withdraws a specified amount from the
account.
A method named deposit that deposits a specified amount to the account.
Draw the UML diagram for the class and then implement the class. (Hint: The
method getMonthlyInterest() is to return monthly interest, not the interest rate.
Monthly interest is balance * monthlyInterestRate . monthlyInterestRate
is annualInterestRate / 12 . Note that annualInterestRate is a percentage,
e.g., like 4.5%. You need to divide it by 100.)
Write a test program that creates an Account object with an account ID of 1122,
a balance of $20,000, and an annual interest rate of 4.5%. Use the withdraw
method to withdraw $2,500, use the deposit method to deposit $3,000, and print
the balance, the monthly interest, and the date when this account was created.
import java.util.ArrayList; import java.util.Date; public class Account { protected String mName; protected int mId; protected double mBalance; protected double mAnnualInterestRate; // AnnualInterestRate is percentage. protected Date mDateCreated; protected ArrayList<Transaction> mTransactions; public Account() { mDateCreated = new Date(); mTransactions = new ArrayList<>(); } public Account(int id, double balance) { this(); mId = id; mBalance = balance; } public Account(String name, int id, double balance) { this(id, balance); mName = name; } public int getId() { return mId; } public void setId(int id) { mId = id; } public double getBalance() { return mBalance; } public void setBalance(double balance) { mBalance = balance; } public double getAnnualInterestRate() { return mAnnualInterestRate; } public void setAnnualInterestRate(double annualInterestRate) { mAnnualInterestRate = annualInterestRate; } public Date getDateCreated() { return mDateCreated; } public double getMonthlyInterestRate() { return mBalance * (mAnnualInterestRate / 12) / 100; } public void withdraw(double amount) { mTransactions.add(new Transaction('W', amount, mBalance, "withdraw")); mBalance -= amount; } public void deposit(double amount) { mTransactions.add(new Transaction('D', amount, mBalance, "deposit")); mBalance += amount; } @Override public String toString() { return "Account name: " + mName + "\n" + "Interest rate: " + mAnnualInterestRate + "\n" + mTransactions; } public ArrayList<Transaction> getTransactions() { return new ArrayList<>(mTransactions); } }
public class Exercise_07 { public static void main(String[] args) { Account account = new Account(1122, 20000); account.setAnnualInterestRate(4.5); System.out.println("Account ID: " + account.getId()); System.out.println("Account Balance: " + account.getBalance()); System.out.println("Withdrawing $2,500..."); account.withdraw(2500); System.out.println("Depositing $3,000..."); account.deposit(3000); System.out.println("Displaying updated info."); System.out.println("Account ID: " + account.getId()); System.out.println("Account Balance: " + account.getBalance()); System.out.println("Monthly interest rate: " + account.getMonthlyInterestRate()); System.out.println("Date account was created: " + account.getDateCreated()); } }
you forgot the transaction class
ReplyDelete+++
DeleteCan You do the UML Class Diagram For above
ReplyDelete