标题: final关键字,去掉差别不大。为什么要加呢? [打印本页] 作者: 小Zeor……… 时间: 2014-2-24 01:38 标题: final关键字,去掉差别不大。为什么要加呢? public class WeekDay {
private WeekDay(){}
public static final WeekDay MON = new WeekDay();
public static final WeekDay TUS = new WeekDay();
}
加和不加有什么区别 作者: 疲劳的小马 时间: 2014-2-24 01:55
这样更严谨呀,这是好的编程习惯,对于既定事实,以及一些常量定义都要用final和一个全大写的字母去标识下,方便阅读。作者: ghhryr 时间: 2014-2-24 02:13
有区别:这个程序是自定义枚举的功能,枚举类型定义:它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。由定义可知枚举在java中定义的是一个常量,而不仅仅是一个变量,常量的特性:常量是只有一旦被初始化就不能改变,如果不加final关键字,类中就不是常量,就可以任意的赋值,就会出错。如下代码:
final 对于常量来说,意味着值不能改变,例如 final int i=10。这个i的值永远都是10。
但是对于变量来说又不一样,只是标识这个引用不可被改变,例如 final File f=new File("c:\\abc.txt");那么这个f一定是不能被改变的,如果f本身有方法修改其中的成员变量,例如是否可读,是允许修改的。作者: 小Zeor……… 时间: 2014-2-24 11:55