一、枚举
1.1 为什么需要枚举
1.2 java5的枚举的基本应用
name
方法返回枚举对象的名称。自己实现了toString
方法。ordinal()
方法枚举对象的位置信息。从0开始valueOf()
返回对应的枚举对象。values()
返回一个枚举数组,将该枚举的所有对象都返回。这样就能够遍历enum实例。
在创建enum时,编译器会自动生成一个相关类,这个类继承java.lang.Enum
1.3 实现带有构造方法的枚举
元素列表必须位于其他元素之前。且用分号隔开。
且枚举类的构造方法必须是private
的。如果不写也默认是private
.
在枚举类后面使用()
传入指定参数来指定需要调用那个构造方法。 其中空()
表示默认构造方法。
1.4 实现带有抽象方法的枚举
内部类可以加访问修饰符。而外部类则只能是默认和public
//带有抽象方法的枚举
import java.util.Date;
public class EnumTest {
public static void main(String[] args) {
}
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 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();
private int time;
private TrafficLamp(int time){this.time = time;}
}
}
可以使用枚举构造单例。
参考
java高新技术–张孝祥