import java.io.Serializable; import java.util.ArrayList; public class BankAccount implements Serializable { private static long accountCounter = 0; private long accountNumber; private double balance; private ArrayList transactions = new ArrayList(); private Customer customer; public BankAccount(Customer customer){ this.customer = customer; accountNumber = accountCounter; accountCounter++; } public BankAccount(double initialDeposit, Customer customer){ this.customer = customer; accountNumber = accountCounter; accountCounter++; balance = initialDeposit; } public boolean withdraw(double amount, Employee employee){ if(balance > amount){ balance -= amount; Transaction newTransaction = new Transaction(this, employee, TransactionType.withdraw, amount); transactions.add(newTransaction); return true; } return false; } public void deposit(double amount, Employee employee){ Transaction newTransaction = new Transaction(this, employee, TransactionType.deposit, amount); transactions.add(newTransaction); balance += amount; } public String toString(){ return "Bank account number: "+accountNumber+" balance: "+balance; } public long getAccountNumber(){ return accountNumber; } }