1、枚举(enum)
enum是一个特殊的类,代表一组常量(不可更改的变量,如,final变量)。
要创建enum,请使用enum关键字(而不是类或接口),并用逗号分隔常量。请注意,它们应使用大写字母:
例如:
访问enum中常量可以使用.的方式访问:
enum Level {
LOW,
MEDIUM,
HIGH
}
如访问枚举类型Level中LOW则使用Level.LOW
2、类中定义枚举
还可以在类中包含一个enum:
例如:
输出将是:public class Main{
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args){
Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
3、switch语句中的enum
枚举常用于switch语句中,来判断相应的值:
例如:public class Main{
public static void main(String[] args){
Level myVar = Level.MEDIUM;
switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
}
}
enum Level {
LOW,
MEDIUM,
HIGH
}
4、循环遍历枚举类型
枚举类型具有values()方法,该方法返回所有枚举常量的数组。 当要遍历枚举的常量时,此方法很有用:
例如:for(Level myVar : Level.values()){
System.out.println(myVar);
}
5、枚举的values(), ordinal() 和 valueOf() 方法
enum 定义的枚举类默认继承了java.lang.Enum 类,并实现了java.lang.Seriablizable和 java.lang.Comparable 两个接口。
values(), ordinal() 和 valueOf()方法位于 java.lang.Enum 类中:
values() 返回枚举类中所有的值。
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。
6、枚举与类之间的区别
枚举可以像class一样具有属性和方法。唯一的区别是枚举常量是不可更改,不能用于创建对象,并且不能扩展其他类(但可以实现接口)。