在Java中,为什在定义常量中要加修饰符final?到底起什么作用呢,能不能不加?
答案:3 悬赏:30 手机版
解决时间 2021-11-21 20:11
- 提问者网友:書生途
- 2021-11-21 08:26
在Java中,为什在定义常量中要加修饰符final?到底起什么作用呢,能不能不加?
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-11-21 08:40
百度一下你就知道啦,学计算机提问题没有百度问题解决的快!
在方法参数前面加final关键字就是为了防止数据在方法体中被修改。这里主要分两种情况:
第一,用final修饰基本数据类型;
第二,用final修饰引用类型。
第一种情况,修饰基本类型(非引用类型)。这时参数的值在方法体内是不能被修改的,即不能被重新赋值。否则编译就通不过。例如: publicvoidtestInt(finalintparam1){ param1=100; } 在方法体内修改了基本数据类型变量的值,在Eclipse中则会提示:“ The final local variable param1 cannot be assigned. It must be blank and not using a compound assignment.“
第二种情况,修饰引用类型。这时参数变量所引用的对象是不能被改变的。作为引用的拷贝,参数在方法体里面不能再引用新的对象。否则编译通不过。
例如:
publicvoidtestFinal2
(
finalObjectparam2
){
param2=newObject();
}
在方法体内修改了参数的引用,在Eclipse中则会提示:
“ The final local variable param2 cannot be assigned. It must be blank and not using a compound assignment.“
在方法参数前面加final关键字就是为了防止数据在方法体中被修改。这里主要分两种情况:
第一,用final修饰基本数据类型;
第二,用final修饰引用类型。
第一种情况,修饰基本类型(非引用类型)。这时参数的值在方法体内是不能被修改的,即不能被重新赋值。否则编译就通不过。例如: publicvoidtestInt(finalintparam1){ param1=100; } 在方法体内修改了基本数据类型变量的值,在Eclipse中则会提示:“ The final local variable param1 cannot be assigned. It must be blank and not using a compound assignment.“
第二种情况,修饰引用类型。这时参数变量所引用的对象是不能被改变的。作为引用的拷贝,参数在方法体里面不能再引用新的对象。否则编译通不过。
例如:
publicvoidtestFinal2
(
finalObjectparam2
){
param2=newObject();
}
在方法体内修改了参数的引用,在Eclipse中则会提示:
“ The final local variable param2 cannot be assigned. It must be blank and not using a compound assignment.“
全部回答
- 1楼网友:怀裏藏嬌
- 2021-11-21 10:33
嗯。。他们答的都对。。
- 2楼网友:行路难
- 2021-11-21 09:03
final是Java中定义常量的关键字,要定义一个常量,必须加上它。一个常量只能在初始时赋值一次,不允许多次赋值。一般把固定的东西设成常量,如圆周率等,因为它只允许在初始时赋值一次,而不允许多次赋值,就可以有效的防止程序员犯逻辑错误
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯