枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举?如何定义枚举?
1 枚举的定义
格式:
Enum 枚举类型名{
枚举值,
枚举值,
......
枚举值;
}
例子:定义枚举,表示四季(春夏秋冬)。
2种方式: 普通的枚举,带构造方法的枚举
package cn.njit.meiju;
/****
* 枚举类型
* @author Administrator
*
*/
public class Demo_1015 {
public static void main(String[] args) {
Season sea=Season.Fall;
System.out.println(sea);
Season_2 s1=Season_2.Autumn;
System.out.println(s1.getSea());
}
}
enum Season{
Spring,Summer,Fall,Winter;
}
enum Season_2{
Spring("春天"),
Summer("夏天"),
Autumn("秋天"),
Winter("冬天");
private String sea;
private Season_2(String sea) {
this.sea=sea;
}
public String getSea() {
return sea;
}
public void sayHello() {
System.out.println("Hello,luowen");
}
}
2 枚举实现接口
由于Java单继承的原因,enum类并不能再继承其它类,但并不妨碍它实现接口,因此enum类同样是可以实现多接口的。
package cn.njit.meiju;
public enum Day implements Show{
MONDAY("星期一"),
TUESDAY("星期二"),
WEDNESDAY("星期三"),
THURSDAY("星期四"),
FRIDAY("星期五"),
SATURDAY("星期六"),
SUNDAY("星期日");// 记住要用分号结束
String desc;
private Day(String desc) { //把构造函数申明为private,可以防止被实例化
this.desc=desc;
}
public String getDesc(){
return desc;
}
@Override
public void show() {
System.out.println("desc:"+desc);
}
public static void main(String[] args) {
Day d=Day.MONDAY;
d.show();
}
}