Java 列挙型は、一般に、1 年の 4 つの季節、1 年の 12 か月、1 週間の 7 日、および南東、北西などの方向。
Java 列挙クラスは enum キーワードを使用して定義され、各定数はカンマで区切られます。
たとえば、色の列挙クラスを定義します。
enum Color { RED, GREEN, BLUE; }
上記の列挙クラス Color の色定数には、それぞれ赤、緑、青を表す RED、GREEN、BLUE が含まれます。
使用例:
enum Color { RED, GREEN, BLUE; } public class Test { // 执行输出结果 public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); } }
上記のコードを実行した出力結果は次のとおりです:
RED
列挙型を使用します。内部クラスの例
列挙型クラスは内部クラスでも宣言できます:
public class Test { enum Color { RED, GREEN, BLUE; } // 执行输出结果 public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); } }
上記のコードを実行した出力結果は次のとおりです:
RED
各列挙はクラスを通じて内部的に実装され、すべての列挙値は public static Final です。
上記の列挙型クラスの色変換は内部クラスに実装されています:
class Color { public static final Color RED = new Color(); public static final Color BLUE = new Color(); public static final Color GREEN = new Color(); }
列挙型要素を反復します
for ステートメントを使用して反復できます。列挙要素:
enum Color { RED, GREEN, BLUE; } public class MyClass { public static void main(String[] args) { for (Color myVar : Color.values()) { System.out.println(myVar); } } }
上記のコードを実行した出力結果は次のとおりです:
RED
GREEN
BLUE
# #switch で列挙を使用する 列挙クラス
列挙クラスは switch ステートメントでよく使用されます:enum Color { RED, GREEN, BLUE; } public class MyClass { public static void main(String[] args) { Color myVar = Color.BLUE; switch(myVar) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; } } }上記のコードを実行した出力結果は次のとおりです:
Blue
values()、ordinal()、および valueOf() メソッド
enum によって定義された列挙クラスは、java.lang.Enum クラスを継承します。デフォルトでは java を実装しており、lang.Seriablizable と java.lang.Comparable の 2 つのインターフェイスがあります。 values()、ordinal()、および valueOf() メソッドは java.lang.Enum クラスにあります。enum Color { RED, GREEN, BLUE; } public class Test { public static void main(String[] args) { // 调用 values() Color arr[] = Color.values(); // 迭代枚举 for (Color col : arr) { // 查看索引 System.out.println(col + " at index " + col.ordinal()); } // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException System.out.println(Color.valueOf("RED")); // System.out.println(Color.valueOf("WHITE")); } }
RED インデックス 0GREEN インデックス 1
BLUE インデックス 2
RED
列挙型クラスのメンバー
通常のクラスと同様、列挙型でも独自の変数、メソッド、コンストラクターを使用できます。コンストラクターはプライベート アクセス修飾子のみを使用できます。したがって、外部から呼び出すことはできません。 列挙には、具象メソッドと抽象メソッドの両方を含めることができます。列挙型クラスに抽象メソッドがある場合、列挙型クラスのすべてのインスタンスはそれを実装する必要があります。enum Color { RED, GREEN, BLUE; // 构造函数 private Color() { System.out.println("Constructor called for : " + this.toString()); } public void colorInfo() { System.out.println("Universal Color"); } } public class Test { // 输出 public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); c1.colorInfo(); } }上記のコードを実行した出力結果は次のとおりです。
呼び出されたコンストラクター : RED推奨チュートリアル: 「呼び出されたコンストラクター : GREEN
呼び出されたコンストラクター : BLUE
RED
Universal Color
Java チュートリアル」
以上がJAVA列挙型(enum)の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。