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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,内部类定义了静态成员,为什么内部类就必须是静态的?

9 个回复

倒序浏览
好像有帖子说过这个问题,你找一下
回复 使用道具 举报
既然是静态的成员,也就是它可以直接被类名所调用,而如果内部类不是静态的话,就必须要先创建对象后才能调用。这样就前后矛盾了。
回复 使用道具 举报
用类名调用啊
回复 使用道具 举报
楼上的够用了
回复 使用道具 举报
因为内部类是非静态的,除了要依靠外部类实例外,还要依赖内部类实例,而静态变量是不需要构建类实例的,两者是相矛盾的,而final类型的变量可以离开类实例存活一段时间的。
回复 使用道具 举报
刘冬 中级黑马 2015-5-12 17:22:04
7#
内部类的成员是静态的说明不需要内部类的实例化就可以引用,既然内部类不需要实例化,相对于外部类就要定义成静态的
回复 使用道具 举报
hsx500 中级黑马 2015-5-13 09:17:41
8#
刘冬 发表于 2015-5-12 17:22
内部类的成员是静态的说明不需要内部类的实例化就可以引用,既然内部类不需要实例化,相对于外部类就要定义 ...

好像理解了,这一块儿好抽象啊。。
回复 使用道具 举报
mmakun 中级黑马 2015-5-13 14:53:18
9#
因为内部类是属于主类的,如果不定义成静态的,那么在调用内部类的变量时,就必须实例化主类
回复 使用道具 举报
mmakun 发表于 2015-5-13 14:53
因为内部类是属于主类的,如果不定义成静态的,那么在调用内部类的变量时,就必须实例化主类 ...

知道了!谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马