关于final赋值问题

关于final赋值问题

1
2
3
4
5
 final static int amig;
 
{
     amig=2;
}

加了static  在构造里赋值会报错:The final field Manage.amig cannot be assigned  为什么?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,The final field Manage.amig cannot be assigned无法为final的字段amig赋值。

这里查看同学的贴出的代码,是将static和final修饰的变量的赋值用在了构造代码块中,这在java语法中是不允许的,因为static  final修饰的变量是作为一个全局的不可修改的变量,这个变量是会随着类的加载而产生。

但是构造代码块是在创建对象时被调用,每次创建对象都会调用一次,但是优先于构造方法执行。也就是说,如果不实例化对象,构造代码块是不会执行的。

综上所述,一个static  final修饰的变量不能在构造代码块中被赋值,例如:

http://img1.sycdn.imooc.com/climg/5e71e52a093a936304040169.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码