这一节看内部类:
1.首先是概念和介绍:
内部类就是定义在另一个类中的类
但是为什么我们引入这个概念呢?如下三点:
1.内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据
2.内部类可以对同一个包中的其他类隐藏起来
3.当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷
现在我们通过一个简单的例子来认识内部类:分析TimerTest示例,并抽象出一个TalkingClock类,构造一个语音时钟需要提供两个参数:发布通告的间隔和开关铃声的标志 。
public class TalkingClock
{
private int interval;
private boolean beep;
public TalkingClock(int interval,boolean beep){...}
public void start(){...}
public class TimePrinter implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
System.out.println("At the tone,the time is "+ new Date());
if(beep)Toolkit.getDefaultToolkit().beep();
}
}
}
对这段程序,我们要说明以下几点:
首先,这里的TimePrinter类位于TalkingClock类内部,这并不意味这每个TalkingClock都有一个TimePrinter实例域。TimePrinter对象是由TalkingClock类的方法构造出来的。程序中的TalkingClock会有一个start()方法,如下: