黑马程序员技术交流社区

标题: 关于静态内部类的用法 [打印本页]

作者: 笑轻轻    时间: 2014-8-10 09:33
标题: 关于静态内部类的用法
我在外部类的静态方法中调用静态内部类以:Outer.Inner();编译不能通过。而new Outer.Inner();编译却能通过。为什么静态内部类不能直接以外部类的类名调用,而要用外部类的对象调用呢?非静态内部类的对象寄存于外部内的对象中,而静态内部类的对象为什么也要以外部类的对象才能调用?
作者: ysdolls    时间: 2014-8-10 09:37
外部类不静态的话是不加载的,不先加载外部类,怎么知道你建了内部类
作者: 笑轻轻    时间: 2014-8-10 15:09
ysdolls 发表于 2014-8-10 09:37
外部类不静态的话是不加载的,不先加载外部类,怎么知道你建了内部类

好高深莫测的回答 鄙人愚昧
作者: ysdolls    时间: 2014-8-10 16:28
笑轻轻 发表于 2014-8-10 15:09
好高深莫测的回答 鄙人愚昧

我也是菜鸟,答的可能不对 抱歉
作者: 冷锋也温柔    时间: 2014-8-10 23:14
如果一个内部类是静态的,测试类要想直接访问,这个时候,创建对象的格式和开始的格式应该是:
                外部类名.内部类名 变量 = new 外部类名.内部类名();
作者: ZhangYL    时间: 2014-8-10 23:43
内部类如果想要在外部类中使用要创建对象,如果进行了static修饰,相当于外部成员,可以访问的只有外部类的静态,这就是你说的静态访问。而且Inner是外部类中的类,所以你的外部类至少要有对象。
作者: kakasa    时间: 2014-8-11 10:31
调用的是方法不是类吧,想访问内部类里的方法 只能new内部类对象后再调用方法。





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