---------------------- Android、Java开发期待与您交流! ----------------------
枚举
有时候,变量的取值只在一个有限的集合内。例如:一周只有七天周日到周六;交通等的三种颜色,红、黄、绿。这样就可以自定义枚举类型。枚举类型包括优先个命名的值。
例如:enum TrafficLamp{RED,GREEN,YELLOW};
然后可以声明这一种类型的变量:
TrafficLamp trafficLamp = TrafficLamp.GREEN;
TrafficLamp类型的变量只能存储这个类型声明中给定的某个枚举值,或者null值,null表示这个变量没有设置任何值
所有枚举类型都是java.lang.Enum的子类,常用的方法有:
String toString():返回枚举常量名
static Enum valueOf(Class enumType,String name):返回带指定名称的指定枚举的常量
int ordinal():返回枚举常量的位置,从零开始计数
注意:
枚举只有一个成员时,就可以做为一种单例的实现方式
枚举中的构造方法、变量、成员方法必须置于枚举常量的下方,构造方法只能为私有或默认类型
public class EnumTest{
public static void main(String[] args){
WeekDay1 weekday1 = WeekDay1.SUN;
System.out.println(weekday1.nextDay());
WeekDay weekday2 = WeekDay.SUN;
System.out.println("weekday2:"+weekday2);
System.out.println(weekday2.name());
System.out.println(weekday2.ordinal());
System.out.println(WeekDay.valueOf("FRI").toString());
System.out.println(WeekDay.values().length);
}
}
abstract class WeekDay1{
private WeekDay1(){}
public static final WeekDay1 SUN = new WeekDay1(){
public WeekDay1 nextDay(){
return MON;
}
};
public static final WeekDay1 MON = new WeekDay1(){
public WeekDay1 nextDay(){
return SUN;
}
};
public abstract WeekDay1 nextDay();
public String toString(){
return this==SUN?"SUN":"MON";
}
}
enum WeekDay{
SUN(1),MON(2),TUE(),WED,THU,FRI,SAT;
private WeekDay(){}
private WeekDay(int day){}
}
---------------------- Android、Java开发期待与您交流! ----------------------