打字猴:1.700445949e+09
1700445949
1700445950 虽然枚举常量在很多方面比接口常量和类常量好用,但是有一点它是比不上接口常量和类常量的,那就是继承,枚举类型是不能有继承的,也就是说一个枚举常量定义完毕后,除非修改重构,否则无法做扩展,而接口常量和类常量则可以通过继承进行扩展。但是,一般常量在项目构建时就定义完毕了,很少会出现必须通过扩展才能实现业务逻辑的场景。
1700445951
1700445952 注意 在项目开发中,推荐使用枚举常量代替接口常量或类常量。
1700445953
1700445954
1700445955
1700445956
1700445957 编写高质量代码:改善Java程序的151个建议 [:1700438156]
1700445958 编写高质量代码:改善Java程序的151个建议 建议84:使用构造函数协助描述枚举项
1700445959
1700445960 一般来说,我们经常使用的枚举项只有一个属性,即排序号,其默认值是从0、1、2……这一点我们非常熟悉。但是除了排序号外,枚举还有一个(或多个)属性:枚举描述,它的含义是通过枚举的构造函数,声明每个枚举项(也就是枚举的实例)必须具有的属性和行为,这是对枚举项的描述或补充,目的是使枚举项表述的意义更加清晰准确。例如有这样的一段代码:
1700445961
1700445962 enum Season{
1700445963
1700445964 Spring(“春”),Summer(“夏”),Autumn(“秋”),Winter(“冬”);
1700445965
1700445966 private String desc;
1700445967
1700445968 Season(String_desc){
1700445969
1700445970 desc=_desc;
1700445971
1700445972 }
1700445973
1700445974 //获得枚举描述
1700445975
1700445976 public String getDesc(){
1700445977
1700445978 return desc;
1700445979
1700445980 }
1700445981
1700445982 }
1700445983
1700445984 其枚举项是英文的,描述是中文的,如此设计使其表述的意义更加精确,方便了多个协作者共同引用该常量。若不考虑描述的使用(即访问getDesc方法),它与如下接口定义的描述则很相似:
1700445985
1700445986 interface Season{
1700445987
1700445988 //春
1700445989
1700445990 int Spring=0;
1700445991
1700445992 //夏
1700445993
1700445994 int Summer=1;
1700445995
1700445996 /*……*/
1700445997
1700445998 }
[ 上一页 ]  [ :1.700445949e+09 ]  [ 下一页 ]