黑马程序员技术交流社区
标题:
关于final关键字的小疑问
[打印本页]
作者:
李节起
时间:
2012-4-5 23:34
标题:
关于final关键字的小疑问
在定义方法的参数时,使用如下形式
public void method(final StringBuffer param)
{
}
想阻止方法内部修改传进来的参数对象,
为什么不可以?
final修饰一个变量时,到底是引用不能变,还是引用的对象不能变?
作者:
刘晓康
时间:
2012-4-5 23:43
final关键字的不变,是指该变量的地址直不变,简单来将当fianl修饰的是基本数据类型时,值一旦给定了就不能在改了。当fianl修饰引用变量(类)时,一旦指向了某个对象就不能再指向别的对象了。简单来说一旦该变量执行了赋值动作就不可以在执行赋值的动作了。即 final x=kk; 后不能在后x=..... 的情况出现了。需要注意的是如果你的成员变量定义成fianl类型是就必须在构造函数中给它赋值,不能通过方法来赋值。
作者:
江远云
时间:
2012-4-6 00:05
想阻止方法内部修改传进来的参数对象,
为什么不可以?
被final修饰的变量是常量
final修饰一个变量时,到底是引用不能变,还是引用的对象不能变?
两者有一者变的话不都一样,应该是引用与引用的对象都不能变
作者:
曾晓文
时间:
2012-4-6 00:26
虽然final修饰的变量是不能修改的,但是final修饰的变量是引用变量的(即对象的地址),而不能作用于引用的对象。所以,不能阻止方法内部修改传进来的参数对象
final修饰一个变量时,是引用不能变。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2