Java 程序访问枚举中定义的所有常量
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() 方法访问枚举中定义的所有常量。