[Java] JDK1.5后出现的枚举 →→→→→进入此内容的聊天室

来自 , 2021-03-29, 写在 Java, 查看 133 次.
URL http://www.code666.cn/view/846c260d
  1. 枚举的作用:通过定义类来限制一定范围的值。
  2.  
  3. 1. 简单的枚举
  4.  
  5. 在JDK1.5之前可以通过以下代码来完成。
  6.  
  7. class Grade {
  8.         private Grade(){}       //必须把构造函数设为私有的
  9.        
  10.         //创建static final的本类对象,用于限定范围
  11.         public static final Grade A = new Grade();
  12.         public static final Grade B = new Grade();
  13.         public static final Grade C = new Grade();
  14.         public static final Grade D = new Grade();
  15.         public static final Grade E = new Grade();
  16.        
  17. }
  18.  
  19. 在JDK1.5之后,通过枚举来实现。枚举的关键字是enum。以上代码可用枚举实现如下:
  20.  
  21. enum Grade {
  22.         A,B,C,D,E;
  23. }
  24.  
  25. 大大简化了代码的书写。
  26.  
  27. 2. 带有参数的构造函数的枚举,用于封装更多的信息。
  28.  
  29. //Grade分级,A(100~90)、B(89~80)、C(79~70)、D(69~60)、E(59~0)
  30. enum Grade {
  31.         A("100~90"),B("89~80"),C("79~70"),D("69~60"),E("59~0");
  32.        
  33.         private String value;   // 定义私有变量value
  34.         // 定义有参的构造函数,可以封装更多的信息
  35.         private Grade(String value) {
  36.                 this.value = value;
  37.         }
  38.         // 定义公共方法,用于获取value
  39.         public String getValue() {
  40.                 return this.value;
  41.         }
  42. }
  43.  
  44. 3. 带抽象的枚举
  45.  
  46. enum Grade {
  47.         // 初始化对象时要覆写抽象方法
  48.         A("100~90"){
  49.                 public String localValue() {
  50.                         return "优";
  51.                 }
  52.         },
  53.         B("89~80"){
  54.                 public String localValue() {
  55.                         return "良";
  56.                 }
  57.         },
  58.         C("79~70"){
  59.                 public String localValue() {
  60.                         return "一般";
  61.                 }
  62.         },
  63.         D("69~60"){
  64.                 public String localValue() {
  65.                         return "差";
  66.                 }
  67.         },
  68.         E("59~0"){
  69.                 public String localValue() {
  70.                         return "不及格";
  71.                 }
  72.         };
  73.        
  74.         private String value;   // 定义私有变量value
  75.         // 定义有参的构造函数,可以封装更多的信息
  76.         private Grade(String value) {
  77.                 this.value = value;
  78.         }
  79.         // 定义公共方法,用于获取value
  80.         public String getValue() {
  81.                 return this.value;
  82.         }
  83.         // 定义抽象方法
  84.         public abstract String localValue();
  85. }
  86.  
  87. 注意:枚举中定义的A,B,C,D,E均是对象,不是属性。
  88.  

回复 "JDK1.5后出现的枚举"

这儿你可以回复上面这条便签

captcha