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

更新于:2023年5月2日

浏览量:127

启动您的职业生涯

通过完成课程获得认证

开始学习
广告