1  /**
  2     A bank account has a balance that can be changed by 
  3     deposits and withdrawals.
  4  */
  5  public class BankAccount
  6  {  
  7     private double balance; 
  8  
  9     /**
 10        Constructs a bank account with a zero balance.
 11     */
 12     public BankAccount()
 13     {  
 14        balance = 0;
 15     }
 16  
 17     /**
 18        Constructs a bank account with a given balance.
 19        @param initialBalance the initial balance
 20     */
 21     public BankAccount(double initialBalance)
 22     {  
 23        balance = initialBalance;
 24     }
 25   
 26     /**
 27        Deposits money into the bank account.
 28        @param amount the amount to deposit
 29     */
 30     public void deposit(double amount) 
 31     {  
 32        balance = balance + amount;
 33     }
 34  
 35     /**
 36        Withdraws money from the bank account.
 37        @param amount the amount to withdraw
 38     */
 39     public void withdraw(double amount) 
 40     {  
 41        balance = balance - amount;
 42     }
 43  
 44     /**
 45        Gets the current balance of the bank account.
 46        @return the current balance
 47     */
 48     public double getBalance()
 49     {  
 50        return balance; 
 51     }
 52     
 53     /**
 54        Transfers money from the bank account to another account
 55        @param amount the amount to transfer
 56        @param other the other account
 57     */
 58     public void transfer(double amount, BankAccount other)
 59     {  
 60        withdraw(amount);
 61        other.deposit(amount);
 62     }
 63  }