常量初始值不能改变,但是可以进行计算,不知道是什么原因。
还有0人有此问题
发表在Java视频课程答疑 2017-10-16
是否精华
版块置顶:

final int a=10; //定义常量a,并为其赋初始值为10.

System.out.println(a+1);//输出常量a+1的值。


输出的结果是:11

没有任何报错。

分享到:
精彩评论 5
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-10-17
沙发

a的值是常量,而且也没重新赋值,有什么疑问吗?

yf_mrkj
学分:148 LV3
2017-10-17
板凳

根号申 发表于2017-10-17 10:34

a的值是常量,而且也没重新赋值,有什么疑问吗?

a是常量值,并赋给了初始值10。常量是一旦赋给了初始值就不会改变也不能改变的一个值。

但是我这里,在输出时使用了:a+1;也就是说在这里改变了a的值,也就违背了常量的定义,那系统为什么还给予认可并输出相加后的值呢?

yf_mrkj
学分:148 LV3
2017-10-17
地板

yf_mrkj 发表于2017-10-17 14:17

a是常量值,并赋给了初始值10。常量是一旦赋给了初始值就不会改变也不能改变的一个值。

但是我这里,在输出时使用了:a+1;也就是说在这里改变了a的值,也就违背了常量的定义,那系统为什么还给予认可并输出相加后的值呢?

哦,我明白了。

我是把一个常量a和一个整型数值相加后交给程序,再由程序输出他们的相加后的结果,所以在这里不存在改变常量a的值。这就相当于:

int b=a+1;

System.out.println(b);


不知道我的明白是否有误?

根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-10-17
4L

yf_mrkj 发表于2017-10-17 14:22

哦,我明白了。

我是把一个常量a和一个整型数值相加后交给程序,再由程序输出他们的相加后的结果,所以在这里不存在改变常量a的值。这就相当于:

int b=a+1;

System.out.println(b);


不知道我的明白是否有误?

没错

yf_mrkj
学分:148 LV3
2017-10-17
5L

根号申 发表于2017-10-17 16:38

没错

非常感谢老师的指点!

首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照