訪問列舉中所有定義的常量的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

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.