匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。 这就要采用另一种形式的new语句,如下所示: new <类或接口> <类的主体> 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。 如果匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。如果匿名类实现了一个接口,它的主体必须实现接口的方法
java 代码
- interface pr
- {
- void print1();
- }
-
- public class noNameClass
- {
- public pr dest()
- {
- return new pr(){
- public void print1()
- {
- System.out.println("Hello world!!");
- }
- };
- }
-
- public static void main(String args[])
- {
- noNameClass c=new noNameClass();
- pr hw=c.dest();
- hw.print1();
- }
- }
-
pr也可以是一个类 但是你外部调用的方法必须在你的这个类或接口中声明 外部不能调用匿名类内部的方法
Java中内部匿名类用的最多的地方也许就是在Frame中加入Listner了吧。
如下:
java 代码
- import java.awt.*;
- import java.awt.event.*;
-
- public class QFrame extends Frame {
- public QFrame() {
- this.setTitle(\"my application\");
-
- addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent e) {
- dispose();
- System.exit(0);
- }
- });
-
- this.setBounds(10,10,200,200);
- }
- }
内部匿名类,就是建立一个内部的类,但没有给你命名,也就是没有引用实例的变量。
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}
new 是建立一个 WindowAdapter对象 ,后面一个 {} 表示这个括号中的操作作用于这个默认的对名象,
而上面的Java程序中后面是一个函数体。
这个用法的作用是:创建一个对象的实例,并且 override 它的一个函数。
打开 WindowAdapter 的代码可以发现。它是一个抽象类。它是对 WindowListener 接口的一个实现。
Frame.addWindowListner(); 的参数是一个 WindowListner ,而实现上是传一个从WindowAdapter 派生出的一个匿名类。
分享到:
相关推荐
JAVA匿名类创建对象.doc
Java匿名类的分析和理解
主要介绍了Java匿名类,匿名内部类,结合实例形式分析了Java匿名类,匿名内部类相关原理、用法及操作注意事项,需要的朋友可以参考下
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范
像这样的日志代码会更好: if (log.isLoggable(Level.FINE)) { ...假定你已经完成了分析,并且判断出是运行环境中Java 组件的性能需要改善。 ——参考资料:仅个人学习,未详尽测试,请自行调试!!
本文介绍内部类和匿名类在Java代码中是如何具体工作的,如何正确使用它们,以及如何避免一些常见的错误。 下面来看看这些特性具体是如何工作的? 1、非静态内部类 如果内部类没有指定static修饰符,拥有对...
简单的讲述匿名类的特点,帮助大家区分和使用
Java 匿名内部类的学习demo
java 成员内部类使用 内部匿名类 方法参数匿名类 方法匿名类
掌握java四中匿名内部类
Java WebSocket匿名聊天室源码项目,运行于JSP环境下的WEB项目,核心代码由JAVA编写,编译成Bean运行于JSP的服务器中,支持匿名聊天,作为Jsp编程资料觉得挺不错,将源代码分享给大家吧。
java 内部类 实例内部类 局部内部类 匿名类 静态内部类 实例代码
在Java中,匿名类是一种没有显式声明名称的类。它常用于在创建对象时直接定义类的实现或重写类的方法。 使用匿名类可以简化代码,特别是在需要实现接口或继承抽象类的情况下。
java中的匿名内部类总结
java匿名内部类笔试题
这段代码实现了一个简单的线程池ExecutorService,其中使用了Java的匿名内部类。...这个简单的示例代码展示了如何使用Java匿名内部类来实现一个线程池的简单功能,方便了对多线程任务的管理和执行。
Java 1.1通过对Java语言规范进行...在那些修改中,最引人注目的就是内部类和匿名类。如运用得当,它们可使程序更易理解和维护。本文来看看这些特性具体是如何工作的,如何正确使用它们,以及如何避免一些常见的错误。
Java中的内部类和匿名类!
浅析Java匿名内部类创建登录界面.pdf