主方法中int变量为什么要加final修饰符?
1.请问for循环中的局部变量i,在匿名类的run()方法中使用时,为什么会报错?
2.增加final修饰的变量index应该是常量,为什么可以重复赋值?
3.为什么index要加final修饰符?
7
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小蓝
2023-06-07 18:31:27
同学你好~
1.匿名内部类中访问外部类局部变量时,要求该局部变量必须是被final修饰的。而for循环中的循环变量,要用于控制循环次数,是没有被final修饰的,所以会报错。在Java8版本及其之后的版本,如果外部类局部变量没有加final,并且该变量在后续没有值修改的操作,系统会默认为其添加final以保证语法正确,但是如果有值修改动作的话,就会编译报错。
2.循环中的index确实是常量,但是其也是for循环中的局部变量。该变量在每次循环运行结束之后,就会被回收,下一次循环时的index变量与上一次已经没有任何关系了。所以在代码上看是值的改变,实际上并没有进行改变。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星