Java Program (The Account class) Design a class named Account that contains: ? A
ID: 3568095 • Letter: J
Question
Java Program
(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.
Next, develop a test program in a separate file (call it TestAccount) to create account object with ID 1122 as stated in the problem statement. Test the program and make sure it works properly. Now, add method toString() to classAccount to allow the user to printout a meaningful description of an Account object using all of it instance valuables. For example, the following statement System.out.print(myObject); on object myObject would display the account information.
Account ID:
34598755
Account Balance: $2754.45
Interest Rate: 2.75%
Date Opened: Sun Nov 2 14:18:16 EDT 2014
Here is an example of toString() method:
//------------------------------------------------------------------------------
// Returns a string representation of student object using name and studentID.
//------------------------------------------------------------------------------
public String toString()
{
//name and studentID are instance variables in class Student return ("The student name is " + name + ", and the ID is " + studentID ); }
Now, modify the test program to create 2 more account objects (say myAccout and yourAccount) with different balance values and different interest rates. Test all class methods on these 2 objects in logical order and display meaningful information after each method call.
Explanation / Answer
import java.util.*;
public 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 anualInterestRate that stores the current interest rate (default 0). Assume all accounts have the same interest rate.
private static 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()
{
dateCreated = new Date();
id = 0;
balance = 0;
}
//*A constructor that creates an account with a specified id and initial balance.
public Account(int id, double balance)
{
setID(id);
setBalance(balance);
dateCreated = new Date();
}
//*The accessor and mutator method for id, balance, and annualInterestRate
public int getID()
{
return id;
}
public void setID(int i)
{
id = i;
}
public double getBalance()
{
return balance;
}
public void setBalance(double b)
{
balance = b;
}
public static double getAnnualInterestRate()
{
return annualInterestRate;
}
public static void setAnnualInterestRate(double r)
{
annualInterestRate = r;
}
//*The accessor method for dateCreated
public Date getDateCreated()
{
return dateCreated;
}
//* A method named getMonthlyInterestRate() that returns tyhe monthly interest rate.
public static double getMonthlyInterestRate()
{
return annualInterestRate/12;
}
//*A method named withdraw that withdraws a specified amount from the account
public void withdraw(double amount)
{
balance -= amount;
}
//*A method named deposit that deposits a specified amount from the account.
public void deposit(double amount)
{
balance += amount;
}
}
public class Test
{
public static void main(String[] args)
{
//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%.
Account test= new Account(1122, 20000);
Account.setAnnualInterestRate(0.045);
//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.
test.withdraw(2500);
test.deposit(3000);
System.out.println("Balance: "+test.getBalance());
System.out.println("Monthly interest: "+(test.getMonthlyInterestRate()*test.getBalance()));
System.out.println("Date created: "+test.getDateCreated());
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.