In: Computer Science
please answer each next to its question
Problem Description:
(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 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. Implement the class. 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.
Analysis:
(Describe the problem including input and output in your own
words.)
Design:
(Draw an UML class diagram for the Account class.)
Coding: (Copy and Paste Source Code here. Format your code using Courier 10pts)
public class Test {
public static void main (String[] args) {
Account account = new Account(1122, 20000);
Account.setAnnualInterestRate(4.5);
account.withdraw(2500);
account.deposit(3000);
System.out.println("Balance is " + account.getBalance());
System.out.println("Monthly interest is " +
account.getMonthlyInterest());
System.out.println("This account was created at " +
account.getDateCreated());
}
}
Class Account {
// Implement the class here
}
Testing: (Describe how you test this program)
import java.time.Instant; import java.util.Date; public class Test { public static void main (String[] args) { Account account = new Account(1122, 20000); Account.setAnnualInterestRate(4.5); account.withdraw(2500); account.deposit(3000); System.out.println("Balance is " + account.getBalance()); System.out.println("Monthly interest is " + account.getMonthlyInterest()); System.out.println("This account was created at " + account.getDateCreated()); } } class Account { private int id = 0; private double balance = 0; private static double annualInterestRate = 0; private Date dateCreated = Date.from(Instant.now()); public Account() {} public Account(int id, int balance) { this.setId(id); this.setBalance(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 Account.annualInterestRate; } public static void setAnnualInterestRate(double annualInterestRate) { Account.annualInterestRate = annualInterestRate; } public Date getDateCreated() { return dateCreated; } public double getMonthlyInterest() { return (balance * getAnnualInterestRate()) / 12; } public void withdraw(double amount) { balance -= amount; } public void deposit(double amount) { balance += amount; } }