目录

JAVA 枚举


枚举

一个enum是一个特殊的"class",代表一组常量(不可改变的变量,例如final变量)。

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

示例

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

您可以访问enum常数与语法:

Level myVar = Level.MEDIUM;
亲自试一试 »

枚举是"enumerations"的缩写,意思是"specifically listed"。


类内的枚举

您还可以拥有一个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("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
亲自试一试 »

枚举和类之间的区别

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

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

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

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