1  /**
  2     A class to monitor the growth of an investment that 
  3     accumulates interest at a fixed annual rate.
  4  */
  5  public class Investment
  6  {
  7     private double balance;
  8     private double rate;
  9     private int years;
 10  
 11     /**
 12        Constructs an Investment object from a starting balance and
 13        interest rate.
 14        @param aBalance the starting balance
 15        @param aRate the interest rate in percent
 16     */
 17     public Investment(double aBalance, double aRate)
 18     {
 19        balance = aBalance;
 20        rate = aRate;
 21        years = 0;
 22     }
 23  
 24     /**
 25        Keeps accumulating interest until a target balance has
 26        been reached.
 27        @param targetBalance the desired balance
 28     */
 29     public void waitForBalance(double targetBalance)
 30     {
 31        while (balance < targetBalance)
 32        {
 33           years++;   
 34           double interest = balance * rate / 100;
 35           balance = balance + interest;
 36        }
 37     }
 38  
 39     /**
 40        Gets the current investment balance.
 41        @return the current balance
 42     */
 43     public double getBalance()
 44     {
 45        return balance;
 46     }
 47  
 48     /**
 49        Gets the number of years this investment has accumulated
 50        interest.
 51        @return the number of years since the start of the investment
 52     */
 53     public int getYears()
 54     {
 55        return years;
 56     }
 57  }