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 }