看一下我刚学习的代码
简单的说 用关键字 Enum 创建的类 ,这个类中的每个元素 都是 对象 如下面的 RED GREEN YELLOW DOU 都是对象
package cn.itcast.day1;
public class EnumText {
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay1 weekDay = WeekDay1.MON;
System.out.println(weekDay.nextDay());
WeekDay weekDay2 = WeekDay.FRI;
System.out.println(weekDay2.ordinal());
System.out.println(WeekDay.valueOf("SUN"));
System.out.println(WeekDay.values().length);
}//给枚举定义构造方法 必须放在对象之后 必须是私有的
public enum WeekDay{
SUN(1),MON(),TUE,WED,THI,FRI,SAT;//这是对象 他在初始化的时候 都会调用构造方面 就是下面的代码
private WeekDay(){System.out.println("first");};
private WeekDay(int day){System.out.println("second");}
}
public enum Single{
SINGLE(){
public Single getInstance(){
return SINGLE;
}
// @Override
// public Single getInstance() {
// // TODO Auto-generated method stub
// return null;
// }
};
public abstract Single getInstance();//构造方法
}
public enum TrafficLamp{ //RED是TrafficLamp的子类
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();//这是一个抽象方法 只能被声明 不能被实现 所以没有大括号。
public int time;
private TrafficLamp (int time){
this .time = time;
}
}
} |