访问枚举中所有定义的常量的Java程序
在JDK 5版本之后,Java引入了枚举。它是一组使用关键字“enum”定义的常量。Java中的final变量与枚举有些相似。
在这篇文章中,我们将编写一个Java程序,在其中定义一个枚举类,并尝试使用valueOf()和values()方法访问枚举中定义的所有常量。
枚举
当我们需要定义一组固定的常量时,我们使用枚举类。例如,如果我们想使用一周中的几天、行星名称、所有五个元音的名称等。请注意,所有常量的名称都以大写字母声明。
尽管枚举在Java中是一种类类型,但我们不能实例化它。枚举中定义的每个常量都是其枚举类型的实例。它提供了类的其他功能,例如我们可以创建它的实例变量、方法和构造函数。
语法
Enum enumeration_name { // constants values }
示例
enum Planet { EARTH, MARS, JUPYTER, NEPTUNE, SATURN, URANUS, VENUS; }
上面的示例说明了如何创建枚举类。枚举的名称是Planet,变量EARTH、MARS是它的常量。默认情况下,它们声明为public和static。这些常量是自类型的,因为它们的类型由定义它们的枚举定义。在这种情况下,它们是Planet类型。
访问枚举中所有定义的常量的程序
valueOf()和values()是两个预定义的方法,它们将帮助我们获取列表中定义的常量的值。
valueOf() − 它返回作为参数传递的常量的值。
values() − 它返回一个包含枚举类中所有常量的数组。
示例1
下面的示例演示了如何使用valueOf()方法获取常量:
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 each loop to iterate through all constants 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()方法访问枚举中定义的所有常量。