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 this account.
28 @param amount the amount to deposit
29 */
30 public void deposit(double amount)
31 {
32 balance = balance + amount;
33 }
34
35 /**
36 Makes a withdrawal from this account, or charges a penalty if
37 sufficient funds are not available.
38 @param amount the amount of the withdrawal
39 */
40 public void withdraw(double amount)
41 {
42 final double PENALTY = 10;
43 if (amount > balance)
44 {
45 balance = balance - PENALTY;
46 }
47 else
48 {
49 balance = balance - amount;
50 }
51 }
52
53 /**
54 Adds interest to this account.
55 @param rate the interest rate in percent
56 */
57 public void addInterest(double rate)
58 {
59 double amount = balance * rate / 100;
60 balance = balance + amount;
61 }
62
63 /**
64 Gets the current balance of this account.
65 @return the current balance
66 */
67 public double getBalance()
68 {
69 return balance;
70 }
71 }