顶级类默认是static的, 虽然声明中没有static关键字。 但内部类并不是默认静态的,所以内部不能有static的变量, 给内部类加个static就可以了。
如果有帮助,请采纳,谢谢!
如图: C选项错误(非静态内部类中不能存在静态变量,但是可以存在静态常量即被final修饰的static比变量称为常量)。静态变量疑问着是属于类级别的,可以直接通过类名调用,在类加载到虚拟机的时候就已经初始化了。
JAVA在加载类的时候,会先加载外部类再加内部类,即JAVA中内部类的加载时需要等到外部类加载完成并实例化之后才能进行,如果一个非static的内部类如果具有static的属性或者方法,那么就会出现一种情况:内部类未加载,但是却试图在内存中创建static的属性和方法,这显然是错误的
Java内部类中的成员变量不能为静态的,除非是使用final修饰的成员变量。
如果有疑问可以私信,如果已解决,请采纳噢!