Java 程序访问枚举中定义的所有常量

javaobject oriented programmingprogramming

JDK 5 版之后,Java 引入了枚举。它是一组使用关键字"enum"定义的常量。Java 中的 final 变量与枚举有些相似。

在本文中,我们将编写一个 Java 程序,在该程序中定义一个枚举类,并尝试使用 valueOf() 和 values() 方法访问枚举中定义的所有常量。

枚举

当我们需要定义一组固定的常量时,我​​们会使用枚举类。例如,如果我们想使用星期几、行星名称、所有五个元音的名称等。请注意,所有常量的名称都以大写字母声明。

虽然枚举是 Java 中的类类型,但我们无法实例化它。枚举中定义的每个常量都是其枚举类型的实例。它提供了类的其他功能,例如我们可以创建它的实例变量、方法和构造函数。

语法

Enum enumeration_name {
// 常量值
}

示例

enum Planet {
   EARTH, MARS, JUPYTER, NEPTUNE, SATURN, URANUS, VENUS;
} 

上面的例子说明了如何创建一个枚举类。枚举的名称是 Planet,变量 EARTH、MARS 是它的常量。默认情况下,它们被声明为公共和静态。这些常量是自类型的,因为它们的类型由定义它们的枚举定义。在本例中,它们是 Planet 类型。

程序访问枚举中定义的所有常量

valueOf() 和 values() 是两个预定义方法,可帮助我们获取列表中定义的常量的值。

valueOf() - 它返回作为参数传递的常量的值。

values() - 它返回一个包含枚举类中存在的所有常量的数组。

示例 1

以下示例演示了如何使用 valueOf() 方法获取常量&minuns;

enum Vibgyor { 
   // creating enumeration
   VIOLET, INDIGO, BLUE, GREEN, YELLOW, ORANGE, RED; 
   // constants
}
public class Main {
   public static void main(String[] args) {
      System.out.println("The color present in VIBGYOR: ");
      Vibgyor color = Vibgyor.ORANGE; 
      System.out.println(color + " is present at index: " + color.ordinal());
      Vibgyor colr = Vibgyor.valueOf("INDIGO"); 
      System.out.println(colr);
      System.out.print(Vibgyor.valueOf("RED"));
   }
}

输出

The color present in VIBGYOR: 
ORANGE is present at index: 5
INDIGO
RED

在上面的程序中,我们创建了一个枚举"Vibgyor",其中包含一些常量。两个变量"color"和"colr"是 Vibgyor 类型的枚举变量。使用这些变量,我们获取了常量。使用 valueOf() 方法,我们可以一次获取一个项目。这里使用 ordinal() 方法来访问 ORANGE 的索引值。索引从 0 开始。我们也可以访问常量而不创建任何变量。

示例 2

以下示例演示了如何使用 values() 方法获取常量 −

enum Vibgyor {
   VIOLET, INDIGO, BLUE, GREEN, YELLOW, ORANGE, RED;
}
public class Main {
   public static void main(String[] args) {
      System.out.println("The color present in VIBGYOR: ");
      // 每次循环迭代所有常量
      for(Vibgyor color : Vibgyor.values()) {
         System.out.println(color);
      }
   }
}

输出

The color present in VIBGYOR: 
VIOLET
INDIGO
BLUE
GREEN
YELLOW
ORANGE
RED

在上面的程序中,我们用单个 for each 循环访问了所有常量。values() 方法可以一次访问多个值。

结论

在本文中,我们讨论了枚举及其方法。我们创建了 Java 程序来了解如何使用 values() 和 valueOf() 方法访问枚举中定义的所有常量。


相关文章