本程序演示了 匿名內部类的使用。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;
//本程序演示 匿名內部类,使用这个匿名类的好处就是减少了一些代码量,但是 有点让人难以理解。
public class AnonymousInnerClassTest {
public static void main(String [] args)
{
TalkingClock clock=new TalkingClock();
clock.start(1000,true);
//保持程序的运行直到用户选择了 OK
JOptionPane.showMessageDialog(null,"Quit program");
System.exit(0);
}
}
//一个时钟类,定期打印时间
class TalkingClock
{
//开始这个时钟
public void start(int interval,final boolean beep)
{
ActionListener listener=new ActionListener() //本语句的含义是:创建一个实现ActionListener接口的类的新对象
//需要实现的actionPerformed 定义在括号内。
{
@Override
public void actionPerformed(ActionEvent e) {
Date now=new Date();
System.out.println("At the tone,the time is:"+now);
if(beep) Toolkit.getDefaultToolkit().beep();
}
};
Timer t=new Timer(interval,listener);
t.start();
}
}