如下面代码以交灯为示例:
public static void main(String[] args) {
Trafficlight light = Trafficlight.RED;
System.out.println(light.time);
System.out.println(light.nextLigth());
// ordinal()方法返回枚举声明的顺序
System.out.println(light.ordinal());
// values()方法得到所有枚举类型的一个数组
for(Trafficlight light1:light.values()){
System.out.println(light1.name());
}
// valueOf()方法可以把字符串转换成相应的枚举对象
System.out.println(light.RED ==light.valueOf("RED"));
}
public enum Trafficlight {
GREEN(30) {
@Override
public Trafficlight nextLigth() {
return RED;
}
},
RED(30) {
@Override
public Trafficlight nextLigth() {
return YELLOW;
}
},
YELLOW(10) {
@Override
public Trafficlight nextLigth() {
return GREEN;
}
};
public abstract Trafficlight nextLigth();
private int time;
// 构造方法
private Trafficlight(int time) {
this.time = time;
}
public int getTime(){
return time;
}
}
}
代码中light只是相当于一个父类的实例,用它可以得到各个成员变量的子类,调用各种方法,valueOf(String)方法可以将字符串转换成一个枚举。