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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

java中成员内部类内为什么不允许有任何静态声明,求解

3 个回复

倒序浏览
内部类可以有静态声明,那么这个内部类必须声明成static,
回复 使用道具 举报
额,看了你的问题啦,是这样的:
成员内部类 之所以叫做成员 就是说他是类实例的一部分 而不是类的一部分 结构上来说 他和你声明的成员变量是一样的地位 一个特殊的成员变量 而静态的变量是类的一部分和实例无关 你若声明一个成员内部类 让他成为主类的实例一部分 然后又想在内部类声明和实例无关的静态的东西 你让JVM情何以堪啊 若想在内部类内声明静态字段 就必须将其内部类本身声明为静态 静态内部类里面的字段 就算没有static修饰符也是静态的
回复 使用道具 举报
如果成员内部类有static成员存在的话,类也得声明static。不然的话,类加载进内存的同时,static就在了。先有了内部类才有的内部类成员,如果内部类的成员是static的,但内部类却不是,那成员也没办法先存在。 个人理解。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马