黑马程序员技术交流社区

标题: 为什么成员内部类里不能定义静态的属性和方法? [打印本页]

作者: 曾_强    时间: 2012-4-28 12:54
标题: 为什么成员内部类里不能定义静态的属性和方法?
一个小问题。为什么成员内部类里不能定义静态的属性和方法?

静态对象的加载模式是默认加载,是不是可以将内部类也设置为默认加载?

作者: 周海诚    时间: 2012-4-28 13:56
静态的对象,在内存中实默认实例化的,
在加载的时候就会存放到内存中。
也就是可以直接调用而不需要手动实例化。
首先内部的静态类他是不能直接被实例化的。
你必须实例化外部类才能实例化它。
而外部类不是默认加载的,他只有在手动实例化之后才有内存分配。
这时问题出现了。既然静态对象是默认加载,
那么静态内部类应该先于外部类被加载到内存中。
那么这是又和我们之前的一个结论相反,
首先内部的静态类他是不能直接被实例化的。
你必须实例化外部类才能实例化它。
所以这种写法是错误的。




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