JAVA基础:Java的内层类和外层类

文章作者 100test 发表时间 2007:03:14 16:58:11
来源 100Test.Com百考试题网


什么是inner class?
内层类就是在另一个类的内部定义的一个类,定义这个类的类被称作外层类.内层类最大
的优点
在于它拥有对在外层类中定义的所有变量和方法的访问权.这也是内层类非常适合于创建
适配
器的原因.内层类的另一个优点是用户可以看到它们实例化一个接口的实例,如下代码(这
是按
钮单击事件的代码):
//outer class is "Frame1"
button1.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
button1_actionPerformed(e). //button1_actionPerformed(e)方法定义在Fr
ame1中
}
}).
其中:
java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
button1_actionPerformed(e).
}
}
这就是定义的一个内层类!事实上ActionListener是一个接口,其后的{}中的内容是这个
内层
类的唯一的一个方法:public void actionPerformed(ActionEvent e).这个内层类没有
任何
属性.这个方法中的唯一动作就是调用了按钮单击的方法----button1_actionPerformed
(e)
----这个方法在外层类Frame1中定义:我们的处理就在这个方法中,比如我们可以写:
void button1_actionPerformed(ActionEvent e){
System.exit(0).
}
在这里,我们看到了内层类在调用外层类的方法----button1_actionPerformed(e).同时
,我们
注意到该内层类定义的前面的"new",她把这个内层类实例化了!
匿名类和命名类
在上面这段代码中,定义的内层类没有类名,这是因为这个类只被使用了一次,是一个"一
次性"
类,即匿名类.不用担心这个类的名字,Java会在背后帮我们做这些.在编译之后,可以在项
目目
录下找到这些类,它们具有这样的名字:Frame1$1.class,Frame1$2.class等等,以此类推


相关文章


JAVA基础:命名你的线程和查看系统
Java开发中的线程安全选择与Swing
JavaScript窗口功能指南之命名窗口和框架
JAVA基础:Java的内层类和外层类
JAVA基础:构造方法的初始化顺序(2)
JAVA基础:构造方法的初始化顺序(1)
JavaScript窗口功能指南之定制新窗口
JavaScript窗口功能指南之检查一个窗口是否存在
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛