黑马程序员技术交流社区

标题: 为什么静态只能访问静态成员, [打印本页]

作者: 王会涛    时间: 2014-11-13 16:26
标题: 为什么静态只能访问静态成员,
为什么静态只能访问静态成员,在外部类的静态函数里面访问内部类时内部类必须是stastic可是为什么在主函数里面访问非静态内部类就可以呢(new  Outer.Inter().内部类的方法)?


作者: wf111sxwf    时间: 2014-11-13 18:37
何为静态?  类一加载它就存在了,不需要对象就可以直接用类名调用,而非静态的成员必须创建对象才可以调用,
内部类处于成员位置上时,你可以把他视作一个成员变量来理解, 静态成员方法可以访问非静态成员变量么?明显不能。  这就是为什么在外部类的静态函数里面访问内部类时内部类必须是stastic。

二。在主函数中访问非静态内部类  是这样的  Outer.Inner   oi = new Outer.new Inner.    oi.内部类方法。


作者: wf111sxwf    时间: 2014-11-13 18:40
第二个我写错了。  误解了你的问题。  主函数是静态的  不可以直接访问非静态的方法,但是你创建了内部类对象,用对象调用了方法,这个和主函数是没什么关系的
作者: 关军波    时间: 2014-11-13 19:02
学习学习!!!!!!
作者: 叫我小强    时间: 2014-11-13 19:08
看看!!
作者: 王会涛    时间: 2014-11-13 20:10
wf111sxwf 发表于 2014-11-13 18:40
第二个我写错了。  误解了你的问题。  主函数是静态的  不可以直接访问非静态的方法,但是你创建了内部类对 ...

懂了,谢谢,就是看内部类是静态成员用类名.访问方法,如果是非静态,用对象.访问
作者: w239983684    时间: 2014-11-13 20:12
学习了。
作者: 焦旭宁1    时间: 2014-11-13 21:07
学习!!!!!!
作者: 扫地僧wu    时间: 2014-11-13 22:03
2口回答的很好啊,学习了




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