为了账号安全,请及时绑定邮箱和手机立即绑定

关于final修饰变量,哪错了?

关于final修饰变量,哪错了?

慕姐9408558 2017-08-31 17:44:59
public class Test{ private final int i; public Test(){ } public Test(int i){ this.i=i;}}
查看完整描述

4 回答

?
唐僧佷低调

TA贡献1条经验 获得超2个赞

final修饰的i就是常量了,要在声明的时候就给值。后面也无法修改i的值了

查看完整回答
2 反对 回复 2017-08-31
?
_小王爷

TA贡献1条经验 获得超0个赞

java中final 修饰的变量是不可以更改的.所以在修饰变量时,一定要赋初始值.

在普通的全局变量中,如果不赋初始值,java都会有一个默认值,比如 int 的默认值为0

按照以上理论,如果被final修饰的变量不赋初始值,由java指定,也就是0.又因为不可修改.

那么这样赋值的意义何在?

所以,final修饰的全局变量一定要赋初始值.

但是,凡是都有一个但是;

在修饰引用数据类型的时候,不能改变的是这个引用指向的堆内存的地址值.可以改变堆内存中的数据.




查看完整回答
反对 回复 2017-09-03
?
望远

TA贡献1017条经验 获得超1032个赞

属性一旦被final修饰,那么就是常量,必须在定义的时候完成初始化,并且无法修改常量值。

查看完整回答
反对 回复 2017-08-31
  • 4 回答
  • 0 关注
  • 1857 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信