In: Computer Science
Java - Design a class named Account that contains:
A private String data field named accountNumber for the account (default AC000).
A private double data field named balance for the account (default 0).
A private double data field named annualIntRate 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 account number and initial balance.
The accessor and mutator methods for accountNumber, balance, and annualIntRate
The accessor method for dateCreated.
A method named getMonthlyIntRate() that returns the monthly interest rate (see note below).
A method named getMonthlyInt() that returns the monthly interest (see note below).
A method named withdraw that withdraws a specified amount from the account, do not allow withdrawing and give appropriate message if the withdraw amount is more than the balance.
A method named deposit that deposits a specified amount to the account, do not allow depositing if the amount is negative.
Write java codes for the class. Note that you need to write java codes for all methods except the following methods: getMonthlyIntRate(), and getMonthlyInt(). However, for these two methods you need to write method header.
Write a test program that creates an Account object with an account number of AC1111, a balance of $25,000, and an annual interest rate of 3.5. Use the withdraw method to withdraw $3,500, use the deposit method to deposit $3,500, and print the balance, the monthly interest, and the date when this account was created
Code:-
import java.util.*;
public class Account {
// Setting Fields
private String accountNumber;
private double balance;
private double annualIntRate;
private Date dateCreated;
public Account() { // Default Constructor
dateCreated = java.util.Calendar.getInstance().getTime();
}
public Account(String accountNumber, double balance) { // Constructor with Argument
this.accountNumber = accountNumber;
this.balance = balance;
dateCreated = java.util.Calendar.getInstance().getTime();
System.out.println("Account is Created. Balance : "+getBalance());
}
// Accessor and Mutator of fields created
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public double getBalance() {
return balance;
}
public Date getDateCreated() {
return dateCreated;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getAnnualIntRate() {
return annualIntRate;
}
public void setAnnualIntRate(double annualIntRate) {
this.annualIntRate = annualIntRate;
}
public void getMonthlyIntRate() {} // Function defn. as asked
public void getMonthlyInt() {} // Function defn. as asked
public void withdraw(double amount){ if(amount>getBalance()){ // Withdraw Function
System.out.println("Balance amount is insufficient.");
}
else{
double a = getBalance()-amount;
setBalance(a);
System.out.println("Amount is debited. Remaining Balance : "+getBalance());
}
}
public void deposit(double amount){ if(amount<0){ // Deposit Function
System.out.println("Amount deposited is negative.");
}
else{
double a = getBalance()+amount;
setBalance(a);
System.out.println("Amount is credited. Remaining Balance : "+getBalance());
}
}
public static void main(String[] args) {
Account acc = new Account("AC1111", 25000); // Creating Account
acc.setAnnualIntRate(3.5); // Setting Annual Interest rate
acc.withdraw(3500); // Withdrawing 3500$ from account
acc.deposit(3500); // Depositing 3500$ in account
System.out.println("The balance in account is : "+acc.getBalance());
System.out.println("The date on which account is created : "+acc.getDateCreated());
}
}
OUTPUT:-
