现实中有这么一类是事物,它们只能取有限固定的值,比如星期几、性别、交通灯等等。java就针对这类事物定义了一个新的特性——枚举,它是一种特殊的类。
枚举的特点:
1.私有构造方法。
2.每个元素分别用一个共有的静态成员变量表示。
3.可以有若干个公有方法和抽象方法。
枚举的语法:
1. 基本语法
public enum TrafficLamp{
RED,GREEN,YELLOW;
}
TrafficLamp tl = TrafficLamp.GREEN;枚举中定义的交通灯有RED,GREEN,YELLOW三个值,意味着enum中事先定义了3个交通灯对象,而且只有这3个交通灯对象,因为构造方法是私有的。由于这3个对象可以由枚举名直接获取,所以这3个对象是静态的。
System.out.println(tl);
2. 带有构造函数的枚举
public enum TrafficLamp{枚举中我们可以定义构造方法,在3个对象值后面传入参数。
RED(20),GREEN(30),YELLOW(3);
private TrafficLamp(){}
private TrafficLamp(int time){
System.out.println(time);
}
}
3. 带有抽象方法的枚举
<span style="white-space:pre"></span>public enum TrafficLamp{
RED(20) {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return GREEN;
}
},
GREEN(30) {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return YELLOW;
}
},
YELLOW(3) {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return RED;
}
};
private TrafficLamp(){}
private TrafficLamp(int time){
System.out.println(time);
}
public abstract TrafficLamp nextLamp();
}
枚举中可以定义抽象方法,这个抽象方法由其子类实现,枚举在建立3个对象时用内部类的形式继承带有抽象方法的枚举,实现抽象方法。------- Windows Phone 7手机开发、 .Net培训、期待与您交流! -------