I code have run into issues
//Demonstrates the BankAccount and derived classes import java.text.*; // to use Decimal Format public class AccountDriver { public static void main(String[] args) { double put_in = 500; double take_out = 1000; DecimalFormat myFormat; String money; String money_in; String money_out; boolean completed; // to get 2 decimals every time myFormat = new DecimalFormat("#.00"); //to test the Checking Account class CheckingAccount myCheckingAccount = new CheckingAccount ("Benjamin Franklin", 1000); System.out.println ("Account Number " + myCheckingAccount.getAccountNumber() + " belonging to " + myCheckingAccount.getOwner()); money = myFormat.format(myCheckingAccount.getBalance()); System.out.println ("Initial balance = $" + money); myCheckingAccount.deposit (put_in); money_in = myFormat.format(put_in); money = myFormat.format(myCheckingAccount.getBalance()); System.out.println ("After deposit of $" + money_in + ", balance = $" + money); completed = myCheckingAccount.withdraw(take_out); money_out = myFormat.format(take_out); money = myFormat.format(myCheckingAccount.getBalance()); if (completed) { System.out.println ("After withdrawal of $" + money_out + ", balance = $" + money); } else { System.out.println ("Insuffient funds to withdraw $" + money_out + ", balance = $" + money); } System.out.println(); //to test the savings account class SavingsAccount yourAccount = new SavingsAccount ("William Shakespeare", 400); System.out.println ("Account Number " + yourAccount.getAccountNumber() + " belonging to " + yourAccount.getOwner()); money = myFormat.format(yourAccount.getBalance()); System.out.println ("Initial balance = $" + money); yourAccount.deposit (put_in); money_in = myFormat.format(put_in); money = myFormat.format(yourAccount.getBalance()); System.out.println ("After deposit of $" + money_in + ", balance = $" + money); completed = yourAccount.withdraw(take_out); money_out = myFormat.format(take_out); money = myFormat.format(yourAccount.getBalance()); if (completed) { System.out.println ("After withdrawal of $" + money_out + ", balance = $" + money); } else { System.out.println ("Insuffient funds to withdraw $" + money_out + ", balance = $" + money); } yourAccount.postInterest(); money = myFormat.format(yourAccount.getBalance()); System.out.println ("After monthly interest has been posted," + "balance = $" + money); System.out.println(); // to test the copy constructor of the savings account class SavingsAccount secondAccount = new SavingsAccount (yourAccount,5); System.out.println ("Account Number " + secondAccount.getAccountNumber()+ " belonging to " + secondAccount.getOwner()); money = myFormat.format(secondAccount.getBalance()); System.out.println ("Initial balance = $" + money); secondAccount.deposit (put_in); money_in = myFormat.format(put_in); money = myFormat.format(secondAccount.getBalance()); System.out.println ("After deposit of $" + money_in + ", balance = $" + money); secondAccount.withdraw(take_out); money_out = myFormat.format(take_out); money = myFormat.format(secondAccount.getBalance()); if (completed) { System.out.println ("After withdrawal of $" + money_out + ", balance = $" + money); } else { System.out.println ("Insuffient funds to withdraw $" + money_out + ", balance = $" + money); } System.out.println(); //to test to make sure new accounts are numbered correctly CheckingAccount yourCheckingAccount = new CheckingAccount ("Issac Newton", 5000); System.out.println ("Account Number " + yourCheckingAccount.getAccountNumber() + " belonging to " + yourCheckingAccount.getOwner()); } }
public abstract class BankAccount { protected static int numberOfAccounts = 100001; private double balance; private String owner; private String accountNumber; public BankAccount() { balance = 0; accountNumber = numberOfAccounts + ""; numberOfAccounts++; } public BankAccount(String name, double amount) { owner = name; balance = amount; accountNumber = numberOfAccounts + ""; numberOfAccounts++; } public BankAccount(BankAccount oldAccount, double amount) { owner = oldAccount.owner; balance = amount; accountNumber = oldAccount.accountNumber; } public void deposit(double amount) { balance = balance + amount; } public boolean withdraw(double amount) { boolean completed = true; if (amount <= balance) { balance = balance - amount; } else { completed = false; } return completed; } public double getBalance() { return balance; } public String getOwner() { return owner; } public String getAccountNumber() { return accountNumber; } public void setBalance(double newBalance) { balance = newBalance; } public void setAccountNumber(String newAccountNumber) { accountNumber = newAccountNumber; } }
public class SavingsAccount extends BankAccount { int savingsNumber=0; public SavingsAccount(String string, double rate) { interestRate = 2.5; } public SavingsAccount(SavingsAccount yourAccount, int rate) { } public void addInterest() { double interest = (getBalance() * interestRate / 100) / 12; deposit(interest); } private double interestRate; public void deposit(double amount) {} public boolean withdraw(double amount) { return false;} public void deductFees() {} private int transactionCount; public void postInterest() { double balance = getBalance(); balance += (balance * interestRate); deposit(balance); } }
public class CheckingAccount extends BankAccount { private int transactionCount; private static final int FREE_TRANSACTIONS = 0; private static final double TRANSACTION_FEE = 0.15; public CheckingAccount(String string, double initialBalance) { super(string, initialBalance); transactionCount = 0; } public void deposit(double amount) { transactionCount++; super.deposit(amount); } public boolean withdraw(double amount) { transactionCount++; return super.withdraw(amount); } public void deductFees() { } }
This is expected output:
Account Number 100001-10 belonging to Benjamin Franklin Initial balance = $1000.00 After deposit of $500.00, balance = $1500.00 After withdrawal of $1000.00, balance = $499.85 Account Number 100002-0 belonging to William Shakespeare Initial balance = $400.00 After deposit of $500.00, balance = $900.00 Insuffient funds to withdraw $1000.00, balance = $900.00 After monthly interest has been posted,balance = $901.88 Account Number 100002-1 belonging to William Shakespeare Initial balance = $5.00 After deposit of $500.00, balance = $505.00 Insuffient funds to withdraw $1000.00, balance = $505.00 Account Number 100003-10 belonging to Issac Newton
This is the output I'm getting:
Account Number 100001-10 belonging to Benjamin Franklin Initial balance = $1000.00 After deposit of $500.00, balance = $1500.00 After withdrawal of $1000.00, balance = $500.00 Account Number 100002-0 belonging to null Initial balance = $.00 After deposit of $500.00, balance = $.00 Insuffient funds to withdraw $1000.00, balance = $.00 After monthly interest has been posted,balance = $.00 Account Number 100003-1 belonging to null Initial balance = $.00 After deposit of $500.00, balance = $.00 Insuffient funds to withdraw $1000.00, balance = $.00 Account Number 100004 belonging to Issac Newton