---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
枚举是JDK1.5之后的新特新
枚举就是要让某个类型的变量的取值只能为某个固定值中的一个,否则,编译器会报错,枚举可以让编译时就可以控制源程序中填写的非法值,并通过变量的方式在开发阶段无法实现这一目标
注意:枚举只有一个成员时,就可以作为一种单例的实现方式
class
{
public static void main(String[] args)
{
WeekDay1 weekDay=WeekDay1.MON;
sop(weekDay.nextDay);
WeekDay weekDay2=WeekDay.FRI;
sop(weekDay2);
sop(weekDay2.name());
sop(weekDay2.ordinal());//打印对应的阿拉伯数字
sop(WeekDay.valueOf("SUN".toString()));
sop(WeekDay.values().length);//打印对应的数组
}
public static void sop(Object obj)
{
System.out.println(obj);
}
public enum WeekDay//建立枚举
{
SUN,MON,TUE,WED,THI,FRI,SAT;
}
}
实现带有构造方法的枚举
public enum WeekDay
{
SUN,MON,TUE,WED,THI,FRI,SAT;//默认使用第一个构造方法,除非指定参数 如:SUM(1)
private WeekDay(){}
private WeekDay(int x){}
}
实现带有抽象方法的枚举
//交通信号灯
public enum TrafficLamp
{
Red()
{
public TrafficLamp nextLamp()
{
return Green;
}
}
Green()
{
public TrafficLamp nextLamp()
{
return Yellow;
}
}
Yellow()
{
public TrafficLamp nextLamp()
{
return Red;
}
}
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time)
{
this.time=time;
}
}