I've got this code for an assignment, and for some reason my output displays zero's instead of the information I've added to the constructors. Also, the checking account is also supposed to display the interest but doesn't, even though the instructions say for the toString() method in checking to not include the interest.
The instructions just in case.
For the Account class, create:
two protected variables for the account number and the account balance.
two get methods - one for the account number and one for the account balance
two set methods - one for the account number and one for the balance.
a constructor that requires an account number and sets the balance to 0.
a method to override the toString() method which returns a String containing: Account # = < account number> Account Balance = <account balance> where <account number> is the object's account number and <account balance> is the object's account balance.
an abstract computeInterest() method that takes one integer argument and returns a double.
Do not allow either the account number or the balance to be set to a negative number.
The Checking class will be a subclass of Account. For the Checking class, create:
a method to override the toString() method which returns a String containing: "Checking" , the account number, and the account balance. Do not print the interest earned as part of toString().
a constructor that takes an account number as an argument and calls the superclass constructor passing this account number.
a method to implement the abstract computeInterest() method of the superclass. This method takes one argument for the interest period and returns the interest earned. The interest earned is 2 % of the balance over $700 times the interest period. The interest period is passed as an argument to the computeInterest() method. For example, the interest on $3000 at 2% for three years is (3000 - 700) times .02 times 3 or 138.
The Savings class will be a subclass of Account. For the Savings class, create:
an additional private variable to hold the interest rate.
a get and set method for the interest rate. Do not allow the interest rate to be set to a negative number.
a method named toString() that overrides the toString() method of the Object class. This method should return "Savings", the account number, the account balance and the interest rate. Do not print the interest earned as part of toString().
a constructor with two arguments - the account number and the interest rate. This constructor calls the superclass constructor passing the account number.
a method to implement the abstract computeInterest() method of the superclass. This method takes one argument for the interest period and returns the interest earned. The interest is calculated as (1 + interest rate)period times the balance minus the balance. The interest period is passed as an argument to the computeInterest() method. For example, the interest on $6000 at 2% for three years is (1.02)3 * 6000 - 6000 or 367.
For the AccountArray class, create:
a main() method.
an array to store 10 objects of either the Savings or Checking class. Use 2% (.02) for the savings account rate. Use account numbers 100 through 109. Use initial balances of 1000 through 10000.
a for loop that will instantiate 5 objects of the Savings class and 5 objects of the Checking class. Store these objects in a single array created above.
a for loop that prints the data in all 10 objects of the array using the overridden toString() method and also prints the interest amount computed for each object. Use 3 for the period. The results are displayed in the sample output.
public abstract class Account { protected long accountNumber; protected double accountBalance; public long getAccountNumber() { return accountNumber; } public double getAccountBalance() { return accountBalance; } public void setAccountNumber(long number) { number = accountNumber; } public void setAccountBalance(double balance) { balance = accountBalance; } public void setUpAccount(long number, double balance) //look up constructors { number = accountNumber; balance = accountBalance; } public String toString() { return "Account Number: " + accountNumber + " Account Balance: " + accountBalance; } public abstract double computeInterest(int intPeriod); }
public class Checking extends Account { public String toString() { String info = "Checking\nAccount Number: " + accountNumber + "\nAccount Balance: " + accountBalance ; return info; } public Checking(long number) { number = accountNumber; } public double computeInterest(int intPeriod) { double total = ((accountBalance - 700) * .02) * 3; return total; } }
public class Savings extends Account { private double interestRate; public double getInterest() { return interestRate; } public void setInterest(double inter) { inter = interestRate; } public String toString() { String info = "Savings\nAccount Number: " + accountNumber + " \nAccount Balance: " + accountBalance + " \nInterest Rate: " + interestRate; return info; } public Savings(long number, double interest) { number = accountNumber; interest = interestRate; } public double computeInterest(int intPeriod) { double total = Math.pow((1 + interestRate), intPeriod) * accountBalance - accountBalance; return total; } }
In this class I thought about constructing the methods first, but then realized that they should probably be set up in the for method.
public class AccountArray { public static void main(String[] args) { Account[] refAccount = new Account[10]; /*refAccount[0] = new Checking(100); refAccount[1] = new Checking(101); refAccount[2] = new Checking(102); refAccount[3] = new Checking(103); refAccount[4] = new Checking(104); refAccount[5] = new Savings(105, .02); refAccount[6] = new Savings(106, .02); refAccount[7] = new Savings(107, .02); refAccount[8] = new Savings(108, .02); refAccount[9] = new Savings(109, .02); refAccount[0].setAccountBalance(1000.0); refAccount[1].setAccountBalance(2000.0); refAccount[2].setAccountBalance(3000.0); refAccount[3].setAccountBalance(4000.0); refAccount[4].setAccountBalance(5000.0); refAccount[5].setAccountBalance(6000.0); refAccount[6].setAccountBalance(7000.0); refAccount[7].setAccountBalance(8000.0); refAccount[8].setAccountBalance(9000.0); refAccount[9].setAccountBalance(10000.0);*/ for(int inc = 0; inc < 10; inc++ ) { refAccount[0] = new Checking(100); refAccount[1] = new Checking(101); refAccount[2] = new Checking(102); refAccount[3] = new Checking(103); refAccount[4] = new Checking(104); refAccount[5] = new Savings(105, .02); refAccount[6] = new Savings(106, .02); refAccount[7] = new Savings(107, .02); refAccount[8] = new Savings(108, .02); refAccount[9] = new Savings(109, .02); refAccount[0].setAccountBalance(1000.0); refAccount[1].setAccountBalance(2000.0); refAccount[2].setAccountBalance(3000.0); refAccount[3].setAccountBalance(4000.0); refAccount[4].setAccountBalance(5000.0); refAccount[5].setAccountBalance(6000.0); refAccount[6].setAccountBalance(7000.0); refAccount[7].setAccountBalance(8000.0); refAccount[8].setAccountBalance(9000.0); refAccount[9].setAccountBalance(10000.0); } for(int ctr = 0; ctr < 10; ctr++) { System.out.println(refAccount[ctr].toString()); } } }
thanks for the help in advance.