Java 匿名类
来源:互联网 发布:列主源矩阵分解法 编辑:程序博客网 时间:2024/06/05 08:15
匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。
这就要采用另一种形式的new语句,如下所示:
new <类或接口> <类的主体>
这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。
假如匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。假如匿名类实现了一个接口,它的主体必须实现接口的方法。
注重匿名类的声明是在编译时进行的,实例化在运行时进行。这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
从技术上说,匿名类可被视为非静态的内部类,所以它们具有和方法内部声明的非静态内部类一样的权限和限制。
假如要执行的任务需要一个对象,但却不值得创建全新的对象(原因可能是所需的类过于简单,或者是由于它只在一个方法内部使用),匿名类就显得非常有用。匿名类尤其适合在Swing应用程序中快速创建事件处理程序。
这就要采用另一种形式的new语句,如下所示:
new <类或接口> <类的主体>
这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。
假如匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。假如匿名类实现了一个接口,它的主体必须实现接口的方法。
注重匿名类的声明是在编译时进行的,实例化在运行时进行。这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
从技术上说,匿名类可被视为非静态的内部类,所以它们具有和方法内部声明的非静态内部类一样的权限和限制。
假如要执行的任务需要一个对象,但却不值得创建全新的对象(原因可能是所需的类过于简单,或者是由于它只在一个方法内部使用),匿名类就显得非常有用。匿名类尤其适合在Swing应用程序中快速创建事件处理程序。
- java 匿名类
- java匿名类
- 关于Java匿名类
- java 匿名类小结
- Java匿名类
- java 匿名类
- java 内部匿名类
- Java总结:匿名类
- java匿名类练习
- java 匿名类
- JAVA匿名类
- Java中的匿名类
- java匿名类监听器
- Java 匿名类
- Java的匿名类
- JAVA匿名类demo
- java中的匿名类
- Java 匿名类
- Codeforces Round #173 (Div. 2)
- 关于Shader wants normals, but the mesh doesn't have them的问题
- SecureCRT连接VirtualBox虚拟机中的Linux环境
- 基于行为树与状态机的游戏人工智能
- android camera(四):camera 驱动 GT2005
- Java 匿名类
- push notification
- 用C语言操作LDAP服务器
- monkey
- OracleClient和OleDb
- C++用new创建二维数组的方法
- camera的分辨率
- android:shape
- java操作(DOM、SAX、JDOM、DOM4J)xml方式的四种比较与详解