黑马程序员技术交流社区
标题:
匿名内部类的名称是什么
[打印本页]
作者:
清风有意
时间:
2014-4-19 19:05
标题:
匿名内部类的名称是什么
通过在论坛中的提问想到的!代码如下 :
package exercise;
public class Test6 {
public static void main(String[] args) {
Object o=new Object();
Object obj=new Object(){};
System.out.println(o.getClass().getName());
System.out.println(obj.getClass().getName());
}
}
复制代码
打印的是
java.lang.Object
exercise.Test6$1
谁能解释下匿名内部类的命名是怎样的?求权威
作者:
曹冬明
时间:
2014-4-19 19:25
你多建几个,再打打看,内部类与外部类的名称是用$分隔的,普通的内部类时Outer$Inner,匿名内部类时Outer$1,2,3,4,5,这个样依次输出的
作者:
左拉
时间:
2014-4-19 19:30
既然是匿名,就表示木有名字,如果要区分,肯定会有个甲乙丙丁默默计数的。
作者:
清风有意
时间:
2014-4-19 19:37
看来就是这样了!
package exercise;
import java.util.ArrayList;
public class Test6 {
public static void main(String[] args) {
Object o=new Object();
Object obj=new Object(){};
Object obj1=new Object(){};
ArrayList obj2=new ArrayList(){};//即使声明的引用型变量不一样,只要是匿名内部类,那就自动排号,而不从新排号。
System.out.println(o.getClass().getName());
System.out.println(obj.getClass().getName());
System.out.println(obj1.getClass().getName());
System.out.println(obj2.getClass().getName());
}
}
复制代码
作者:
悠然丶
时间:
2014-4-19 19:38
补充下知识;
在使用匿名内部类时,要记住以下几个原则:
·匿名内部类不能有构造方法。
·匿名内部类不能定义任何静态成员、方法和类。
·匿名内部类不能是public,protected,private,static。
·只能创建匿名内部类的一个实例。
·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2