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