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 year;
 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        year = 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           year++;   
 34           double interest = balance * rate / 100;
 35           balance = balance + interest;
 36        }
 37     }
 38  
 39     /**
 40        Keeps accumulating interest for a given number of years.
 41        @param numberOfYears the number of years to wait
 42     */
 43     public void waitYears(int numberOfYears)
 44     {
 45        for (int i = 1; i <= numberOfYears; i++)
 46        {
 47           double interest = balance * rate / 100;
 48           balance = balance + interest;
 49        }
 50        year = year + n;
 51     }
 52  
 53     /**
 54        Gets the current investment balance.
 55        @return the current balance
 56     */
 57     public double getBalance()
 58     {
 59        return balance;
 60     }
 61  
 62     /**
 63        Gets the number of years this investment has accumulated
 64        interest.
 65        @return the number of years since the start of the investment
 66     */
 67     public int getYears()
 68     {
 69        return year;
 70     }
 71  }