枚举类型(Enum)
变量的取值在一个有限的集合内。
enum Size{SMALL, MEDIUM, LARGE, EXTRA_LARGE};
Size类型的变量只能存储这个类型声明中给出的某个枚举值,或null值(表示这个变量未设置任何值)
Size s = Size.MEDIUM;
在比较两个枚举类型的值时,不要调用equals,而直接使用==,这是因为声明的枚举类型是一个类,它的实例是确定的(Size类有4个)。
所有枚举类型的父类是Enum类,子类继承它的常见方法有:
- toString() 返回枚举常量名 e.g.
Size.SMALL.toString() 返回字符串 SMALL
- valueOf() 是一个静态方法,是toString()的逆方法
Size s = Enum.valueOf(Size.class, "SMALL") 将s设置为Size.SMALL
每一个枚举类型都有一个静态方法values()
返回一个包含全部枚举值的数组
Size[] values = Size.values();
// 返回一个包含SMALL,MEDIUM,LARGE,EXTRA_LARGE的数组
ordinal()
返回类中声明的枚举常量的位置信息
enum Size{SMALL,MEDIUM,LARGE}
public class Test {
public static void main(String[] args){
Size[] sizes = Size.values();
for(Size s:sizes){
System.out.print(s.toString()+" ");
}
System.out.println();
System.out.println(Size.MEDIUM.ordinal());
}
}
/**
*返回结果
*SMALL MEDIUM LARGE
*1
*/
使用foreach
遍历
for(Size s: Size.values()){
System.out.println(s);
}