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