In Java Design a class named Account that contains: A private int data field nam
ID: 3745711 • Letter: I
Question
In Java
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 called TestAccount that creates an Account object with an account ID, a balance, and an annual interest rate from user input. Use the withdraw method to subtract the withdrawal amount, use the deposit method to add the deposit amount, and print the balance, the monthly interest, and the date when this account was created.
Algorithm:
Create Account class
Get accountid, annualInterestRate, beginningBalance, deposit, withdrawal
Create account object with accountID and beginningBalance
Invoke setAnnualnterestRate, withdraw, deposit
Create DecimalFormat object with format argument ("'$'#,###,##0.00")
Print out balance, monthly interest, annual interest, and date created
Sample run:
Enter the account id:
1
Enter the annual interest rate:
6.5
Enter the beginning balance:
75000
Enter the deposit amount:
50000
Enter the withdrawal amount:
25000
Balance is $100,000.00
Monthly interest is $541.67
Annual interest is $6,500.00
This account was created on Mon Jul 11 14:42:21 EDT 2016
Explanation / Answer
Account class:
import java.util.Date;
//public class named Account
public class Account
{
//data members
private int id;
private double balance,annualInterestRate;
private Date dateCreated;
//no-arg constructor
public Account()
{
this.id=0;
this.balance=0;
this.annualInterestRate=0;
}
//constructor that creates an account with the specified id and initial balance.
public Account(int id,double balance)
{
this.id=id;
this.balance=balance;
}
//accessor and mutator methods for id, balance, and annualInterestRate.
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 balance*annualInterestRate*12;
}
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
//accessor method for dateCreated.
public Date getDateCreated() {
return new Date();
}
// getMonthlyInterestRate() that returns the monthly interest rate.
public double getMonthlyInterestRate() {
annualInterestRate=annualInterestRate/100;
annualInterestRate=annualInterestRate/12;
return annualInterestRate;
}
//getMonthlyInterest() that returns the monthly interest.
public double getMonthlyInterest() {
return balance * this.getMonthlyInterestRate();
}
//withdraw() method that withdraws a specified amount from the account.
public void withdraw(double amount)
{
balance=balance-amount;
}
//deposit that deposits a specified amount to the account.
public void deposit(double amount)
{
balance=balance+amount;
}
}
TestAccount class:
import java.util.Scanner;
public class TestAccount {
public static void main(String[] args)
{
//Scanner object to read inputs from keyboard
Scanner scan = new Scanner(System.in);
//prompting user to input
System.out.println("Enter the account id:");
int accountID = scan.nextInt();
System.out.println("Enter the annual interest rate:");
double annualInterestRate = scan.nextDouble();
System.out.println("Enter the beginning balance:");
double beginningBalance = scan.nextDouble();
System.out.println("Enter the deposit amount:");
double depositAmount = scan.nextDouble();
System.out.println("Enter the withdrawal amount:");
double withdrwaAmount = scan.nextDouble();
//Create account object with accountID and beginningBalance
Account account = new Account(accountID,beginningBalance);
//Invoke setAnnualnterestRate, withdraw, deposit
account.setAnnualInterestRate(annualInterestRate);
account.deposit(depositAmount);
account.withdraw(withdrwaAmount);
//Create DecimalFormat object with format argument ("'$'#,###,##0.00")
DecimalFormat ob = new DecimalFormat("'$'#,###,##0.00");
//displaying output
System.out.println("Balance is "+ob.format(account.getBalance()));
System.out.println("Monthly interest is"+ob.format(account.getMonthlyInterest()));
System.out.println("Annual interest is"+ob.format(account.getAnnualInterestRate()));
System.out.println("This account was created on "+account.getDateCreated());
}
}
Output:
Enter the account id:
1
Enter the annual interest rate:
6.5
Enter the beginning balance:
75000
Enter the deposit amount:
50000
Enter the withdrawal amount:
25000
Balance is $100,000.00
Monthly interest is$541.67
Annual interest is$6,500.00
This account was created on Wed Sep 12 13:00:46 IST 2018
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.