黑马程序员技术交流社区

标题: Outer$1Inner.class这种文件名怎么理解? [打印本页]

作者: 不抛弃不放弃    时间: 2013-11-14 17:47
标题: Outer$1Inner.class这种文件名怎么理解?
本帖最后由 不抛弃不放弃 于 2013-11-14 19:06 编辑

编译包含有内部类的类文件之后,发现生成的.class文件名称不好理解,例如下面的Outer类:
                   public  class Outer{
                         String str="Outer类str";
                         public  void getName(){
                                  class Inner{
                                      String str= "Inner类str";
                                         }
                          }

      }
编译后生成两个.class文件:Outer.class 和Outer$1Inner.class  这第二个名称应该怎么理解?

作者: qq379264347    时间: 2013-11-14 18:25
具体深究也没啥用。
Outer.class是文件名字的主类。
Outer$1Inner.class的意思是说在Outer类中有一个内部类Inner,而这个Inner在“1”方法内,位置没在主类内部,而在某方法的内部。
作者: 胡乃锋    时间: 2013-11-14 18:57
带有内部类的类编译时,内部类也会生成一个相应的.class文件,Outer$1Inner.class就是你定义内部类生成的字节码.class文件啊
作者: 不抛弃不放弃    时间: 2013-11-14 19:04
qq379264347 发表于 2013-11-14 18:25
具体深究也没啥用。
Outer.class是文件名字的主类。
Outer$1Inner.class的意思是说在Outer类中有一个内部类 ...

亚希 回答比较准确




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2