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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jing迪 高级黑马   /  2013-12-17 08:42  /  2778 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如  final double PI = 3.14;这个才是常量?除此之外带数据类型的都是变量????double PI = 3.14;记得老师写过这个东西 那这个其实是一个变量???

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

6 个回复

倒序浏览
final修饰变量后,就是一个常量,因为final修饰的变量只能赋值一次,而且必须要对变量赋值;
如:final double PI ; 这样就是会报错的,必须给一个值,且不能再对final修饰的变量第二次赋值;
除此之外带数据类型的都是变量,这样说也没错.

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
belief丶Only 发表于 2013-12-17 09:39
final修饰变量后,就是一个常量,因为final修饰的变量只能赋值一次,而且必须要对变量赋值;
如:final double P ...

“除此之外带数据类型的都是变量,这样说也没错.”   
其实不然,因为我们知道true和false是boolean类型的常量!
回复 使用道具 举报
java中的常量就是不可以改变的数值,他有六大类型(参考Java基础day02-第二课)。
并非用final修饰的才是常量,比如:System.out.println(4);  System.out.println('a');其中括号中的4和‘a’,
他们都是常量,也并未被final修饰!还有字符串也是常量!所以final是保证是否是常量的充分不必要条件!
楼上那位兄弟说:“除此之外带数据类型的都是变量,这样说也没错.”   其实不然,因为我们知道true和false是boolean类型的常量!

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
对头。就是这样的。{:soso_e179:}
回复 使用道具 举报
如果修饰的变量指向的是引用类型的,你可以理解为被final修饰变量你可以理解为他将堆中指向栈中的引用绑定了,如果修饰的是局部变量,你可以理解为值被私有化了,不能被访问了.
回复 使用道具 举报
其实在JAVA中没有什么是固定不变的  一个类的内部方法 变量都是可以用反射来改变属性的  
private 也可以改成public 的
具体方法想了解了自己去查吧  哈哈哈

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 笑得那么开心,也是木有分!!!.

查看全部评分

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