枚举的作用:通过定义类来限制一定范围的值。 1. 简单的枚举 在JDK1.5之前可以通过以下代码来完成。 class Grade { private Grade(){} //必须把构造函数设为私有的 //创建static final的本类对象,用于限定范围 public static final Grade A = new Grade(); public static final Grade B = new Grade(); public static final Grade C = new Grade(); public static final Grade D = new Grade(); public static final Grade E = new Grade(); } 在JDK1.5之后,通过枚举来实现。枚举的关键字是enum。以上代码可用枚举实现如下: enum Grade { A,B,C,D,E; } 大大简化了代码的书写。 2. 带有参数的构造函数的枚举,用于封装更多的信息。 //Grade分级,A(100~90)、B(89~80)、C(79~70)、D(69~60)、E(59~0) enum Grade { A("100~90"),B("89~80"),C("79~70"),D("69~60"),E("59~0"); private String value; // 定义私有变量value // 定义有参的构造函数,可以封装更多的信息 private Grade(String value) { this.value = value; } // 定义公共方法,用于获取value public String getValue() { return this.value; } } 3. 带抽象的枚举 enum Grade { // 初始化对象时要覆写抽象方法 A("100~90"){ public String localValue() { return "优"; } }, B("89~80"){ public String localValue() { return "良"; } }, C("79~70"){ public String localValue() { return "一般"; } }, D("69~60"){ public String localValue() { return "差"; } }, E("59~0"){ public String localValue() { return "不及格"; } }; private String value; // 定义私有变量value // 定义有参的构造函数,可以封装更多的信息 private Grade(String value) { this.value = value; } // 定义公共方法,用于获取value public String getValue() { return this.value; } // 定义抽象方法 public abstract String localValue(); } 注意:枚举中定义的A,B,C,D,E均是对象,不是属性。