对Java嵌套类的讨论 - 编程入门网
器为该匿名内部类产生的class文件名是AnonymousInnerClassDemo2$1.class。
对Java嵌套类的讨论(11)时间:2010-12-21在结束这部分前,这里提及一下匿名内部类的实际应用:开发者经常使用匿名内部类来简化事件处理--即重要事件的通告,例如移动鼠标或者按一个按钮--在程序中会产生和显示一个图形用户界面(GUIs)。使用匿名内部类作事件处理是很方便的,因为这些处理通常都不需要一个类名。列表9就是这样一个例子,这里的匿名内部类简化了windows-closing的事件处理。 Listing 9. AnonymousInnerClassDemo3.java
在运行时,AnonymousInnerClassDemo3显示了一个矩形的窗口,即框架窗口,它是所得GUI的主要窗口。在框架窗口出现后,用户可以移除该窗口并且停止AnonymousInnerClassDemo3的执行。这通常在用户点击窗口右上角的X按钮时发生。 当用户按X时,底层的Java windowing工具包创建了一个事件对象,并且调用一个特别的方法--windowClosing (WindowEvent e),e包含有该事件对象的一个引用--该方法放在一个被称为frame窗口的window监听者(window listener)对象中。该监听者对象通过调用Frame的addWindowListener (WindowListener wl)方法注册到底层的工具包中(因此工具包可以知道方法的位置)。 WindowListener 接口声明了几个方法,每个方法都用作一个可能的window事件。开发者不必实现全部这些方法,因为Java的windowing工具包的设计者建立了一个WindowAdapter类,它实现了全部的WindowListener方法。不过都是空的方法体,开发者可以声明一个匿名内部类来扩展WindowAdapter,并且实现其中的一个或者多个方法。如上所示,我选择覆盖windowClosing (WindowEvent e)方法,并且在其中调用System.exit (0);这样可以通过windowing工具包调用windowClosing (WindowEvent e),就可以终止一个程序(同时关闭窗口)。 注意:在为你的GUI开发事件处理时,你将会经常用到匿名内部类。在以后的文章中,我将会提供许多由匿名内部类来进行事件处理的例子。 总结 这篇文章介绍了类嵌套对于Java语言是很有用的。类嵌套不但令源代码变得清晰--因为你可以在类要管理的对象附近声明类--它同样可以减少一个源文件中,在同一级中声明类的名字的冲突机会。 有4种不同的嵌套类:nested top-level classes(嵌套顶级类), instance inner classes(实例内部类), local inner classes(本地内部类)和anonymo |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |