黑马程序员技术交流社区
标题:
非静态的内部类中为什么不允许定义静态成员?
[打印本页]
作者:
q370349954
时间:
2015-8-19 19:04
标题:
非静态的内部类中为什么不允许定义静态成员?
非静态的内部类中为什么不允许定义静态成员?
作者:
蓬头小道士
时间:
2015-8-19 20:18
本帖最后由 蓬头小道士 于 2015-8-19 22:53 编辑
不好意思,解释不对!
作者:
sunsteam
时间:
2015-8-19 20:20
这是语言规则啊 你怎么不问为什么语句后面要加分号
作者:
左岸那片海
时间:
2015-8-20 01:00
假设外边的类叫做OutClass,内部类叫做InnerClass,首先要了解java的装载过程,先加载类,然后初始化静态的东西,并且JAVA编译器必须保证所有的静态都在使用前分配好内存空间,然后非静态的只有在使用的时候才分配内存空间。 所以非静态的InnerClass必须得要OutClass实例化之后才会存在,所以非静态InnerClass的静态成员在开始的时候并没有得到初始化(因为这些内存是无法通过任何方式访问的),这就和JAVA的编译原则相违背了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2