猿问

应该是内部类的问题

1.这个代码错误原因是什么?
2.如果是内部类的问题,为什么创建内部类对象c1,c2和访问内部类成员变量的时候,不提示错误?
该怎么修改呢?
谢谢各位

fafagagag
浏览 1152回答 1
1回答

宇哥sss丶

第一个错误:java成员内部类中不能用静态变量。具体原因是:静态变量是要占用内存的,在编译时只要是定义为静态变量了,系统就会自动分配内存给他,而内部类是在宿主类编译完编译的,也就是说,必须有宿主类存在后才能有内部类,这也就和编译时就为静态变量分配内存产生了冲突,因为系统执行:运行宿主类->静态变量内存分配->内部类,而此时内部类的静态变量先于内部类生成,这显然是不可能的,所以不能定义静态变量!第二个错误:是因为创建内部类对象时,必须先创建外部类的对象。这是因为非静态内部类对象有着指向其外部类对象的引用。可以先记住:要创建内部类对象就要先创建相应外部类的对象。具体代码:希望可以帮到你哟~
随时随地看视频慕课网APP

相关分类

Java
我要回答