Java 枚举 - enum

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

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

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

可以使用 . 语法访问枚举常量:

Level myVar = Level.MEDIUM;

运行示例

上面示例运行结果如下

MEDIUM

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


类中的枚举

我们也可以在一个类中定义枚举:

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

运行示例

枚举和类之间的区别

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

枚举不能用于创建对象,也不能继承其他类(但它可以实现接口)。

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

当你有你知道不会改变的值时可以使用枚举,比如日、颜色、卡片组等。

查看笔记

扫码一下
查看教程更方便