Java 枚举

枚举

枚举(enum)是一种特殊的“类”,代表一组常量(不可更改的变量,如 final 变量)。

如需创建 enum,请使用 enum 关键字(而不是类或接口),并用逗号分隔常量。请注意,它们应为大写字母:

实例

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

您可以使用点语法访问 enum 常量:

Level myVar = Level.MEDIUM;

亲自试一试

提示:Enum 是 "enumerations" 的缩写,意思是“特别列出”。

类中的枚举

您还可以在类中使用 enum

实例

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("低级");
        break;
      case MEDIUM:
        System.out.println("中级");
        break;
      case HIGH:
        System.out.println("高级");
        break;
    }
  }
}

输出将是:

中级

亲自试一试

遍历枚举

枚举类型有一个 values() 方法,它返回包含所有枚举常量的数组。当您想遍历枚举的常量时,此方法很有用:

实例

for (Level myVar : Level.values()) {
  System.out.println(myVar);
}

输出将是:

LOW
MEDIUM
HIGH

亲自试一试

枚举和类的区别

enum 可以像 class 一样拥有属性和方法。唯一的区别是枚举常量是 publicstaticfinal(不可更改 - 不能被覆盖)。

enum 不能用于创建对象,也不能扩展其他类(但它可以实现接口)。

为什么以及何时使用枚举?

当您知道某些值不会改变时请使用枚举,例如月、日、颜色、一副牌等。