当前位置:编程学习 > JAVA >>

final 关键字

在学习使用普通类模拟枚举的实现原理时,碰到这么一句代码:Public static final Weekday MON=new Weekday();请问这里Final 的作用可不可以去掉?因为Weekday的构造函数已经被私有化了,在外语调用MON可以只同过类名就行了。 
--------------------编程问答-------------------- 不使用final关键字的话别人可以MON = TUE之类的办法修改你的值. 所以final是必须的. --------------------编程问答-------------------- final加在变量上就是一个常量 --------------------编程问答-------------------- 去掉final关键字后,只能调用方法,不能重新赋值,所以楼主根据实际情况判断。 --------------------编程问答-------------------- 加上final之后,里面的值不能再被修改。如果不加的话,遇到其他函数的时候会修改函数内部的数值。 --------------------编程问答-------------------- --------------------编程问答-------------------- 1楼说的比较清楚了,我稍微补充一句就是:无论你程序逻辑上如何保证,常量用final是“优美、推荐”的写法。 --------------------编程问答--------------------
引用 6 楼 ldh911 的回复:
1楼说的比较清楚了,我稍微补充一句就是:无论你程序逻辑上如何保证,常量用final是“优美、推荐”的写法。


最佳实践 --------------------编程问答-------------------- final 是定义常量   代表值不可变   不加final 是变量   值可改 --------------------编程问答-------------------- 常量加final确实比较优雅 --------------------编程问答-------------------- --------------------编程问答-------------------- 这里final是必须的,要不调用时就可能会修改你的MON了 --------------------编程问答-------------------- 不能去掉final  final是常量  不可改变 ,拿掉就成为变量了!
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,