你想想,假如你用静态方法调用非静态变量,当类没有初始化的时候就可以使用静态方法,但是这个时候,非静态变量还未产生呢. 编译都会报错的 .
这么说吧,静态的对象,在内存中实默认实例化的,在加载的时候就会存放到内存中。
也就是可以直接调用而不需要手动实例化。
理解这个就不难理解楼主说的问题了。
首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例化它。而外部类不是默认加载的,他只有在手动实例化之后才有内存分配。
这时问题出现了。既然静态对象是默认加载,那么静态内部类应该先于外部类被加载到内存中。
那么这是又和我们之前的一个结论相反(首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例化它。)所以这种写法是错误的。
温馨提示:内容为网友见解,仅供参考