黑马程序员技术交流社区

标题: 用static定义内部类的一个小问题 [打印本页]

作者: lidinghai    时间: 2014-12-9 17:37
标题: 用static定义内部类的一个小问题
本帖最后由 lidinghai 于 2014-12-9 17:37 编辑


class Outer{       private static String info="hello world";
       static class  Inner{
           public void print(){
                      System.out.println(info);
          }
   }
}
         public class Demo{
                     public static void mian(String args[]){
                new Outer.Inner().print();//这句是什么意思,实在看不懂。。
              }
        }



作者: 曛丨黯淡浮华    时间: 2014-12-9 17:48
本帖最后由 曛丨黯淡浮华 于 2014-12-9 18:27 编辑

一般外部类想调用内部类,格式是: 外部类.内部类  名称 = new 外部类().new 内部类();
然而内部类是静态类,静态内部类new的时候不需要外部类的实例的。

不需要外部类的实例 , 就会简化成: new Outer.Inter()   .  外部类只需要写外部类名称即可,无需new 一个实例。
你可以看看这篇文章 http://blog.csdn.net/vange/article/details/5407625





作者: dengchao    时间: 2014-12-9 18:49
很收益 很好
作者: l763631191    时间: 2014-12-9 19:30
:)好东西
作者: xingyunjunjun    时间: 2014-12-9 19:42
原来是这样
作者: java小兵    时间: 2014-12-9 19:53
New Outer.Inner().print()其实就是内部类对象调用print方法。
过程等于  
Outer.Inner x = new Outer().new Inner();
x.print();




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