1.为什么要有枚举
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标
2.枚举应用
---私有的构造方法
---每个元素分别用一个公有的静态成员变量表示
---可以有若干个公有方法
----枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法
-----枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分隔,把枚举
-----枚举只有一个成员时,就可以作为一种单例的实现方式。
应用举例:
public EnumTest{
public static void main(String []args)
{
WeekDay weekDay2=WeekDay.FRI;
System.out.println(weekDay2);//FRI
System.out.println(weekDay2.name());//FRI
System.out.println(weekDay2.ordinal());//5 ---排行
System.out.println(WeekDay.valueof("SUN").toString);//静态方法---toString
System.out.println(WeekDay.values().length);//枚举成员数组
}
public enum WeekDay{
SUN(1),MON,TUE,WED,THI,FRI,SAT;//元素列表必须放在前段
private WeekDay(){}//构造方法
private WeekDay(int day){}
}
// 带有抽象方法的枚举--交通灯
public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(10){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp (int time){this.time=time;}
}
}
|