这个例子中,TimePrinter类位于类TalkingClock的內部,它有很大的访问权限,既可以访问自己的成员变量,也可以访问它外面的类的成员。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;
//本程序演示內部类的使用
public class InnerClassTest {
public static void main(String [] args)
{
TakingClock clock=new TakingClock(1000,true);
clock.start();
//让程序一直运行,直到用户选择了OK
JOptionPane.showMessageDialog(null,"Quit Program?");
System.exit(0);
}
}
//一个clock,在固定的时间间隔内 打印出时间
class TakingClock
{
//构造一个会说话的clock
public TakingClock(int interval,boolean beep)
{
this.interval=interval;
this.beep=beep;
}
//启动 clock
public void start()
{
ActionListener listener=new TimePrinter();
Timer t=new Timer(interval,listener);
t.start();
}
private int interval;
private boolean beep;
}
class TimePrinter implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
Date now=new Date();
System.out.println("At the tone ,the time is:"+now);
Toolkit.getDefaultToolkit().beep();
}
}