------- android培训、java培训、期待与您交流! ----------
枚举:
枚举相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。
枚举元素必须位于枚举体中的最开始部分,枚举元素列表的最后要有分号与其他成员分隔。
把枚举重的成员方法或变量等放在枚举元素的前面,编译报错
带构造方法的枚举:
构造方法必须定义成私有的如果有多个构造方法,该如何选择哪个构造方法呢?--参数
枚举元素RED和RED()的效果一样,都是调用默认的构造方法
枚举只有一个成员(元素)时,就可以作为一种单例的实现方式。
在枚举当中声明的所有变量默认都是public static final修饰,但是前面不可以显示的加这些修饰符。
TrafficLamp枚举:
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
TrafficLamp lamp= TrafficLamp.GREEN;
TrafficLamp lamp1= TrafficLamp.RED;
System.out.println(lamp.name());//GREEN
System.out.println(lamp.ordinal());//1
System.out.println(TrafficLamp.valueOf("RED"));//RED
TrafficLamp[] lamps = TrafficLamp.values (); //values() 方法返回的是枚举类所有的元素集合
for (TrafficLamp lamp2 : lamps){
System. out .print(lamp2.name());//REDGREENYELLOW
}
}
public enum TrafficLamp{//定义枚举TrafficLamp
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}//每个元素分别由枚举的子类生成实例对象,子类采用类似内部类的方式进行定义
},
GREEN(30){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(3){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){
this.time=time;
}
private TrafficLamp(){};
}
}