A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清风有意 中级黑马   /  2014-4-19 19:05  /  1243 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通过在论坛中的提问想到的!代码如下 :
  1. package exercise;

  2. public class Test6 {

  3.         public static void main(String[] args) {
  4.                 Object o=new Object();
  5.                 Object obj=new Object(){};
  6.                
  7.                 System.out.println(o.getClass().getName());
  8.                 System.out.println(obj.getClass().getName());
  9.         }

  10. }
复制代码

打印的是
java.lang.Object
exercise.Test6$1

谁能解释下匿名内部类的命名是怎样的?求权威

4 个回复

倒序浏览
你多建几个,再打打看,内部类与外部类的名称是用$分隔的,普通的内部类时Outer$Inner,匿名内部类时Outer$1,2,3,4,5,这个样依次输出的
回复 使用道具 举报
既然是匿名,就表示木有名字,如果要区分,肯定会有个甲乙丙丁默默计数的。
回复 使用道具 举报
看来就是这样了!
  1. package exercise;

  2. import java.util.ArrayList;

  3. public class Test6 {

  4.         public static void main(String[] args) {
  5.                 Object o=new Object();
  6.                 Object obj=new Object(){};
  7.                 Object obj1=new Object(){};
  8.                 ArrayList obj2=new ArrayList(){};//即使声明的引用型变量不一样,只要是匿名内部类,那就自动排号,而不从新排号。
  9.                 System.out.println(o.getClass().getName());
  10.                 System.out.println(obj.getClass().getName());
  11.                 System.out.println(obj1.getClass().getName());
  12.                 System.out.println(obj2.getClass().getName());
  13.         }

  14. }
复制代码
回复 使用道具 举报
补充下知识;
在使用匿名内部类时,要记住以下几个原则:
 ·匿名内部类不能有构造方法。  
 ·匿名内部类不能定义任何静态成员、方法和类。  
 ·匿名内部类不能是public,protected,private,static。  
 ·只能创建匿名内部类的一个实例。
  ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。  
 ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马