package cn.itcast.day1;
public class TrafficEnum {
public static void main(String[] args) {
TrafficLamp tral = TrafficLamp.GREEN;
System.out.println(tral.time);
System.out.println(tral.NextLamp());
}
//定义一个枚举交通灯的例子
/*1:枚举返回的类型是自己的类型,例如:public abstract TrafficLamp NextLamp()
NextLamp()抽象方法返回TrafficLamp类型;
2:可以定义静态常量,结果就是这个类型的实例对象;例如:RED(35)
3:枚举就是一个特殊的类,如果有一个成员时,就可以作为一个单例的实现方式*/
public enum TrafficLamp{
/*Red,Green,Yellow;这里面的每一个元素都是TrafficLamp类的实例对象,
* 肯定不能拿着它去NEW了,所以用它的子类去实现...
* 则写成这样:Red{},Green{},Yellow{};
大白话:RED是一个元素,{这里面是用TrafficLamp类的子类去实现的}*/
RED(35){
public TrafficLamp NextLamp(){
return GREEN;
}
},
GREEN(45){
public TrafficLamp NextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp NextLamp(){
return RED;
}
};
public abstract TrafficLamp NextLamp();
//NextLamp()定义一个类的抽象方法返回值是TrafficLamp类型,例如人的年龄方法返回还是一个人
private int time;//每个灯的时间,私有的
private TrafficLamp (int time){//构造方法(带参数的),私有的;
this.time=time;
}
}
}
2:可以定义静态常量,结果就是这个类型的实例对象;例如:RED(35)
3:枚举就是一个特殊的类,如果有一个成员时,就可以作为一个单例的实现方式*/
这两句话这样理解对吗?单例是? |
|