Java 枚举
枚举
enum 枚举是一个特殊的 "类",表示一组 常量(不可更改的变量,如 final 变量)。
要创建枚举,请使用 enum 关键字(而不是类或接口),并用逗号分隔常量。请注意,它们应该是大写字母:
实例
enum Level {LOW,MEDIUM,HIGH}
可以使用 点 语法访问枚举常量:
enum Level {LOW,MEDIUM,HIGH}public class Main {public static void main(String[] args) {Level myVar = Level.MEDIUM;System.out.println(myVar);}}
Enum 是 "enumerations" 的缩写,意思是 "specifically listed" 特别列表.
类中的枚举
你也可以在一个类中使用枚举:
实例
public class Main {enum Level {LOW,MEDIUM,HIGH}public static void main(String[] args) {Level myVar = Level.MEDIUM;System.out.println(myVar);}}
输出将为:
MEDIUM
Switch 语句中的枚举
枚举经常在 switch 语句中用于检查相应的值:
实例
enum Level {LOW,MEDIUM,HIGH}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;}}}
输出将为:
Medium level
循环遍历枚举
枚举类型有一个 values() 方法,该方法返回所有枚举常量的数组。当需要循环遍历枚举的常量时,此方法非常有用:
实例
for (Level myVar : Level.values()) {System.out.println(myVar);}
输出结果将为:
LOW
MEDIUM
HIGH
MEDIUM
HIGH
枚举和类之间的区别
enum 枚举可以像 class 类一样具有属性和方法。唯一的区别是枚举常量是 public 公共的、static 静态的和 final(不可更改-无法重写)。
枚举不能用于创建对象,也不能扩展其他类(但可以实现接口)。为什么以及何时使用枚举?
当你知道自己的值不会改变时,比如月日、颜色、卡片组等,可以使用枚举。