
枚举的作用:通过定义类来限制一定范围的值。 |
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均是对象,不是属性。 |



