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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王会涛 中级黑马   /  2014-11-13 16:26  /  1326 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么静态只能访问静态成员,在外部类的静态函数里面访问内部类时内部类必须是stastic可是为什么在主函数里面访问非静态内部类就可以呢(new  Outer.Inter().内部类的方法)?

8 个回复

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

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

评分

参与人数 1技术分 +1 收起 理由
MVP + 1

查看全部评分

回复 使用道具 举报
第二个我写错了。  误解了你的问题。  主函数是静态的  不可以直接访问非静态的方法,但是你创建了内部类对象,用对象调用了方法,这个和主函数是没什么关系的
回复 使用道具 举报
学习学习!!!!!!
回复 使用道具 举报
看看!!
回复 使用道具 举报
wf111sxwf 发表于 2014-11-13 18:40
第二个我写错了。  误解了你的问题。  主函数是静态的  不可以直接访问非静态的方法,但是你创建了内部类对 ...

懂了,谢谢,就是看内部类是静态成员用类名.访问方法,如果是非静态,用对象.访问
回复 使用道具 举报
w239983684 来自手机 中级黑马 2014-11-13 20:12:02
7#
学习了。
回复 使用道具 举报
学习!!!!!!
回复 使用道具 举报
扫地僧wu 来自手机 中级黑马 2014-11-13 22:03:22
9#
2口回答的很好啊,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马