枚举类型
枚举类型包括有线个命名和值
定义一个枚举类型:
enum Size{SMALL,MEDIUM,LARGE};
声明Size类型的变量
Size s=Size.MEDIUM;
枚举类型的变量的值,只能存储为这个枚举在类型声明中给定的某个枚举值,或者null。null表示这个枚举类型变量还没有设置任何枚举值。
枚举类
枚举值是有限个固定的,在比较两个枚举值时直接使用==,不要使用equals
枚举类型可以添加ctor,method,field。ctor须设置成私有,禁止创建多余的实例。
public enum Speed{
SLOW(“s”),MEDIUM(“m”),FAST(“f”);//创建枚举值实例,使用下方参数对应的私有ctor
privateString tag;
privateSpeed(String tag){this.tag=tag;}
privateString getTag(){return tag;}//访问器获取枚举值的tag
}
Enum是所有枚举类的超类
1.String toString()//返回的是枚举常量名的字面值
Speed.SLOW.toString();//返回“SLOW”
2 static <T extends Enum<T>> T valueOf(Class<T>enumType, String name)//返回带指定名称的指定枚举类型的枚举常量。
Speeds=Enum.valueOf(Speed.class,”FAST”);//s是Speed.FAST
3 values()返回枚举类型的所有枚举常量的数组
java.lang.annotation.ElementType
ElementType extendsEnum
static ElementType[] values()
e.g. Speed[] arr=Speed.values();
4 ordinal返回枚举类型中的枚举常量的声明的位置顺序,位置从0开始
intorder = Size.Medium.ordinal();