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

(The Account class) Design a class named Account that contains: ? A private int

ID: 3550568 • Letter: #

Question

(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

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.

Explanation / Answer

import java.util.*;
//(The Account class) Design a class named Account that contains:
class Account
{
// A private int data field named id for the account (default 0).
private int id;
// A private double data field named balance for the account (default 0).
private double balance;
// A private double data field named annualInterestRate that stores the
//current interest rate (default 0). Assume all accounts have the same interest rate.
private double annualInterestRate;
// A private Date data field named dateCreated that stores the date when the account was created.
private Date dateCreated;
// A no-arg constructor that creates a default account.
public Account()
{
id = 0;
balance = 0.0;
annualInterestRate = 0.0;
dateCreated = new Date();
}
// A constructor that creates an account with the specified id and initial balance.
public Account(int id,double b)
{
this.id = id;
balance = b;
annualInterestRate = 0.0;
dateCreated = new Date();
}
// The accessor and mutator methods for id, balance, and annualInterestRate.
public void setId(int id)
{
this.id = id;
}
public void setBalance(double b)
{
balance = b;
}
public void setAnnualInterestRate(double r)
{
annualInterestRate = r;
}
public int getId() { return id; }
public double getBalance() { return balance; }
public double getAnnualInterestRate() { return annualInterestRate; }
// The accessor method for dateCreated.
public Date getDateCreated() { return dateCreated; }
// A method named getMonthlyInterestRate() that returns the monthly interest rate.
public double getMonthlyInterestRate() { return annualInterestRate/1200; }
// A method named getMonthlyInterest() that returns the monthly interest.
public double getMonthlyInterest() {return balance*getMonthlyInterestRate(); }
// A method named withdraw that withdraws a specified amount from the account.
public void withdraw(double amount)
{
if(balance >= amount)
balance = balance - amount;
else
System.out.println("Insufficient funds");
}
//A method named deposit that deposits a specified amount to the account.
public void deposit(double amount)
{
if(amount>=0) balance = balance + amount;
else
System.out.println("Invalid Amount");
}
}
//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.
public class Tester
{
public static void main(String[] args)
{
Account A1 = new Account(1122,20000);
A1.setAnnualInterestRate(4.5);
A1.withdraw(2500);
A1.deposit(3000);
System.out.println("Balance is " + A1.getBalance());
System.out.println("monthly interest is " + A1.getMonthlyInterest());
System.out.println("date when this account was created is " + A1.getDateCreated());
}
}