关于final赋值问题
final static int amig; { amig=2; }
加了static 在构造里赋值会报错:The final field Manage.amig cannot be assigned 为什么?
8
收起
正在回答
1回答
同学你好,The final field Manage.amig cannot be assigned无法为final的字段amig赋值。
这里查看同学的贴出的代码,是将static和final修饰的变量的赋值用在了构造代码块中,这在java语法中是不允许的,因为static final修饰的变量是作为一个全局的不可修改的变量,这个变量是会随着类的加载而产生。
但是构造代码块是在创建对象时被调用,每次创建对象都会调用一次,但是优先于构造方法执行。也就是说,如果不实例化对象,构造代码块是不会执行的。
综上所述,一个static final修饰的变量不能在构造代码块中被赋值,例如:
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星