A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© geoff991 注册黑马   /  2012-2-24 09:59  /  2019 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么可以改变一个final 变量所引用对象的内容啊 有些不明白

4 个回复

倒序浏览
你问的不明白的,最好写个例程上来。
final修饰的量是不能改变的,final修饰一个形式参数时,该参数传进来之后就不能该改变了。但是在这个函数外面还是可以改变的,只是传进来后不能改了。因为形参有final修饰。
回复 使用道具 举报
对于一个final修饰的变量是指在这个变量中存储的一个引用地址是不可以变的,而对于这个引用所指的对象中所存储的内容是可以改变的。
回复 使用道具 举报
final 表示被赋值后不能再改变。
final的变量可以再声明的时候或者在构造的时候赋值。
在未给予初始化值的情况下,可以在以后给final变量赋一次值,但这次赋完值之后就不能改动了。
回复 使用道具 举报
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。
例如,对于如下语句:
Final StringBuffer a=newStringBuffer("immutable");
执行如下语句将报告编译期错误:
a=newStringBuffer("");
但是,执行如下语句则可以通过编译:
a.append(" broken!");

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马