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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 情天不雨 中级黑马   /  2014-10-9 16:32  /  1391 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class TestFinal {

        public static final User test = new User(10);

        public static void main(String[] args) {
                test.setId(1);
                System.out.println(test.getId());
        }
}

为什么输出的是1啊?final关键字定义的变量不是不能修改吗???????

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

4 个回复

倒序浏览
zengming13 发表于 2014-10-9 16:48
注意! final 定义的是变量不可变
亲,是变量不可变哦
当这个变量是基本类型时,很好理解,赋过一次值后变不 ...

所噶。。。谢大神。:P
回复 使用道具 举报
学习了,原来如此
回复 使用道具 举报
final修饰的变量是只能被赋值一次,
回复 使用道具 举报
沙发说的非常好,如果用c语言的指针来说,赋给test的是内存地址,一旦赋值就不可改变,test就一直指向这个地址,但是这个地址对应的内存中的内容是可以变的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马