一、枚举
1、介绍
枚举类:类的对象只有有限个,确定的。 当需要定义一组常量时,强烈建议使用枚举类。如果枚举类中 只有一个对象, 则可以作为 单例模式 的实现。
使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类。
2、枚举的实现
代码示例:方式一,JDK 5.0 之前,自定义枚举类
1 public class SeasonEnum { 2 3 // 枚举当前类的多个对象 4 public static final SeasonEnum SPRING = new SeasonEnum("01", "春天"); 5 public static final SeasonEnum SUMMER = new SeasonEnum("02", "夏天"); 6 public static final SeasonEnum AUTUMN = new SeasonEnum("03", "秋天"); 7 public static final SeasonEnum WINTER = new SeasonEnum("04", "冬天"); 8 9 private SeasonEnum(String code, String desc) { 10 this.code = code; 11 this.desc = desc; 12 } 13 14 private final String code; 15 private final String desc; 16 17 public String getCode() { 18 return code; 19 } 20 21 public String getDesc() { 22 return desc; 23 } 24 }
代码示例:方式二,JDK 5.0,可以使用 enum 关键字定义枚举
1 public enum SeasonEnum { 2 3 // 枚举当前类的多个对象 4 SPRING("01", "春天"), 5 SUMMER("02", "夏天"), 6 AUTUMN("03", "秋天"), 7 WINTER("04", "冬天"); 8 9 public static final Map<String, SeasonEnum> map = new HashMap<>(); 10 11 static { 12 for (SeasonEnum e : values()) { 13 map.put(e.code, e); 14 } 15 } 16 17 SeasonEnum(String code, String desc) { 18 this.code = code; 19 this.desc = desc; 20 } 21 22 private final String code; 23 private final String desc; 24 25 public String getCode() { 26 return code; 27 } 28 29 public String getDesc() { 30 return desc; 31 } 32 33 }
3、枚举实现接口
1 public enum SeasonEnum implements Info { 2 3 // 枚举当前类的多个对象 4 SPRING("01", "春天") { 5 @Override 6 public void show() { 7 System.out.println("春