1.这个代码错误原因是什么?2.如果是内部类的问题,为什么创建内部类对象c1,c2和访问内部类成员变量的时候,不提示错误?该怎么修改呢?谢谢各位
1 回答
宇哥sss丶
TA贡献2条经验 获得超0个赞
第一个错误:java成员内部类中不能用静态变量。具体原因是:静态变量是要占用内存的,在编译时只要是定义为静态变量了,系统就会自动分配内存给他,而内部类是在宿主类编译完编译的,也就是说,必须有宿主类存在后才能有内部类,这也就和编译时就为静态变量分配内存产生了冲突,因为系统执行:运行宿主类->静态变量内存分配->内部类,而此时内部类的静态变量先于内部类生成,这显然是不可能的,所以不能定义静态变量!
第二个错误:是因为创建内部类对象时,必须先创建外部类的对象。这是因为非静态内部类对象有着指向其外部类对象的引用。可以先记住:要创建内部类对象就要先创建相应外部类的对象。
具体代码:
希望可以帮到你哟~
添加回答
举报
0/150
提交
取消