枚举类里面可以有 构造方法。
class Test
{
public static void main(String[] args)
{
TrafficLamp t = TrafficLamp.YELLOW;
System.out.println(t.getLampValue()); //2
System.out.println(TrafficLamp.GREEN.getLampValue()); //3
}
public enum TrafficLamp
{
RED(),YELLOW(2),GREEN(3);
private int lampValue = 0;
private TrafficLamp(){};
private TrafficLamp(int i)
{
lampValue = i;
};
public int getLampValue()
{
return lampValue;
}
}
}
枚举里面的抽象方法
class Test
{
public static void main(String[] args)
{
TrafficLamp t = TrafficLamp.YELLOW;
System.out.println(t.getTime()); //2
System.out.println(TrafficLamp.GREEN.getTime()); //3
}
public enum TrafficLamp
{
RED{
public TrafficLamp nextLamp(){
return YELLOW;
}
},
GREEN(50){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
private int time = 0;
private TrafficLamp(){};
private TrafficLamp(int time)
{
this.time = time;
};
public int getTime()
{
return time;
}
public abstract TrafficLamp nextLamp();
}
}