黑马程序员技术交流社区
标题:
一个关于final关键字的问题
[打印本页]
作者:
张龙欢
时间:
2013-5-6 23:43
标题:
一个关于final关键字的问题
本帖最后由 张龙欢 于 2013-5-8 18:37 编辑
我们在使用final
关键字修饰
一个变量时,是引用不能变,还是引用的对象不能变?
作者:
ZhaoYuBetter
时间:
2013-5-6 23:56
可以有多个引入,但引入的对象不能改变:
例子:
public class FinalTest {
public static void main(String[] args) {
final Student s1 = new Student();
Student s2 = s1;
s2.setAge("cc"); // 设置无效;
System.out.println(s1.getAge());
System.out.println(s2.getAge());
}
}
class Student {
private String name;
private String age = "1";
public void setAge(String age) {
this.age = "aa";
}
public String getAge() {
return age;
}
}
作者:
孙金鑫
时间:
2013-5-7 00:55
final修饰的变量不能变,如果是对象,里面的东西可以变化的
作者:
年轻的棒棒
时间:
2013-5-7 01:18
使用final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改
变的。
final StringBuffer a=new StringBuffer("immutable");
a=new StringBuffer("");//这个是不行的
a.append(" broken!");//这个却是可以的
作者:
刘兆华
时间:
2013-5-7 05:14
final修饰变量,变量就变成了常量。第一次赋值将成为最终值,无法再次赋值和修改。因为你final修饰的是变量并不是修饰的那个对象中的内容,所以对象中的内容可以更改。
作者:
何锦权
时间:
2013-5-7 13:58
用final修饰的引用型变量,是指改引用变量的值不变,该值所指向的对象的属性等是可以改变的
作者:
任江峰
时间:
2013-5-7 20:17
是指引用不能改变:
final Object obj=new Object();
obj变量不能重新赋值,而obj指向的对象内容是可以改变的。
作者:
黑马-雷钊
时间:
2013-5-8 14:41
被final修饰的变量将是那个变量的最终值,不能再次被赋值了。但可以调用。被final修饰的方法只能被调用。不能复写。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2