import java.awt.event.*; import java.text.*; import javax.swing.*; public class InnerClassTest{ public static void main(String[] args){ BankAccount account = new BankAccount(10000); account.accrueInterest(10); while(true){} } } class BankAccount{ public BankAccount(double initialBalance){ balance = initialBalance; } public void accrueInterest(double rate){ ActionListener adder = new InterestAdder(rate); Timer t = new Timer(2000, adder); t.start(); } private double balance; //////INNER CLASS////// private class InterestAdder implements ActionListener{ public InterestAdder(double aRate){ rate = aRate; } public void actionPerformed(ActionEvent event){ double interest = balance * rate / 100; balance += interest; System.out.println("new balance: " + balance); } private double rate; } /////END INNER CLASS////// }