问题描述:
Q6 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 current 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.*;
public class Account {
private int id;
private double balance;
private double annualInterestRate;
private Date dateCreated = new Date();
Account(){
}
Account(int id,double balance){
this.id=id;
this.balance=balance;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
public String getDateCreate() {
return dateCreated.toString();
}
public double getMonthlyInterestRate() {
return balance*(getAnnualInterestRate()/100/12);
}
public double withdraw(double wd) {
return wd;
}
public double deposit(double dp) {
return dp;
}
}
public class TestAccount {
public static void main(String[] args) {
// TODO Auto-generated method stub
Account a = new Account(1122,2000);
double newBallance = 0;
a.setAnnualInterestRate(4.5);
newBallance = a.getBalance()-a.withdraw(2500)+a.deposit(3000);
System.out.println("The balance of the account is: "+newBallance);
System.out.println("The monthly interest is "+ a.getMonthlyInterestRate());
System.out.println("The date when this account was created: "+a.getDateCreate());
}
}