1 /**
2 A withdraw runnable makes periodic withdrawals from a bank account.
3 */
4 public class WithdrawRunnable implements Runnable
5 {
6 private static final int DELAY = 1;
7 private BankAccount account;
8 private double amount;
9 private int count;
10
11 /**
12 Constructs a withdraw runnable.
13 @param anAccount the account from which to withdraw money
14 @param anAmount the amount to withdraw in each repetition
15 @param aCount the number of repetitions
16 */
17 public WithdrawRunnable(BankAccount anAccount, double anAmount,
18 int aCount)
19 {
20 account = anAccount;
21 amount = anAmount;
22 count = aCount;
23 }
24
25 public void run()
26 {
27 try
28 {
29 for (int i = 1; i <= count; i++)
30 {
31 account.withdraw(amount);
32 Thread.sleep(DELAY);
33 }
34 }
35 catch (InterruptedException exception) {}
36 }
37 }
38