欢迎来到天天文库
浏览记录
ID:44714467
大小:32.00 KB
页数:4页
时间:2019-10-25
《java接口与匿名类的详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句,如下所示:new<类或接口><类的主体>这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。如果匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。如果匿名类实现了一个接口,它的主体必须实现接口的方法java
2、代码1.interfacepr 2.{ 3.voidprint1(); 4.} 5. 6.publicclassnoNameClass 7.{ 8.publicprdest() 1.{ 2. returnnewpr(){ 3. publicvoidprint1() 4. { 5. System.out.println("Helloworld!!"); 6. } 7. }; 8.} 9. 10.publicstaticvoidmain(St
3、ringargs[]) 11.{ 12. noNameClassc=new noNameClass(); 13. prhw=c.dest(); 14. hw.print1(); 15.} 16.} 17. pr也可以是一个类但是你外部调用的方法必须在你的这个类或接口中声明外部不能调用匿名类内部的方法Java中内部匿名类用的最多的地方也许就是在Frame中加入Listner了吧。如下:java代码1.importjava.awt.*; 2.importjava.awt.event.*;
4、 3. 4.publicclassQFrameextendsFrame{ 1. publicQFrame(){ 2. this.setTitle("myapplication"); 3. 4. addWindowListener(newWindowAdapter(){ 5. publicvoidwindowClosing(WindowEvente){ 6. dispose(); 7.
5、 System.exit(0); 8.} 9. }); 10. 11. this.setBounds(10,10,200,200); 12. } 13.} 内部匿名类,就是建立一个内部的类,但没有给你命名,也就是没有引用实例的变量。newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); System.exit
6、(0); }} new是建立一个WindowAdapter对象,后面一个{}表示这个括号中的操作作用于这个默认的对名象,而上面的Java程序中后面是一个函数体。这个用法的作用是:创建一个对象的实例,并且override它的一个函数。打开WindowAdapter的代码可以发现。它是一个抽象类。它是对WindowListener接口的一个实现。Frame.addWindowListner();的参数是一个WindowListner,而实现上是传一个从WindowAdapter派生出的一个匿名类。
此文档下载收益归作者所有