Java 速習チュートリアル

Java Enum コンストラクタ

1. Enum コンストラクタ

Enum(列挙型)は、クラスと同様にコンストラクタ(Constructor)を持つことができます。

このコンストラクタは、定数が作成される際に自動的に呼び出されます。開発者が自分で直接呼び出すことはできません。

以下の例では、Enum内の各定数に対して、コンストラクタを通じて「説明文(String型の値)」を設定しています。

enum Level {
  // Enum定数(それぞれ独自の値を保持)
  LOW("低いレベル"),
  MEDIUM("中間のレベル"),
  HIGH("高いレベル");

  // 説明文を保持するためのフィールド(変数)
  private String description;

  // コンストラクタ(上記の定数ごとに1回実行されます)
  private Level(String description) {
    this.description = description;
  }

  // 説明文を読み取るためのゲッター(Getter)メソッド
  public String getDescription() {
    return description;
  }
}

public class Main {
  public static void main(String[] args) {
    Level myVar = Level.MEDIUM; // 特定の定数を選択
    System.out.println(myVar.getDescription()); // "中間のレベル" を出力
  }
}

出力結果:

中間のレベル

       注記: Enumのコンストラクタは、必ず private である必要があります。もし private を記述しなかった場合、Javaによって自動的に private として扱われます。

2. コンストラクタを持つ Enum のループ処理

values() メソッドを使用すれば、コンストラクタで値を設定した定数をループで回し、それぞれの値を出力することも可能です。

for (Level myVar : Level.values()) {
  System.out.println(myVar + ": " + myVar.getDescription());
}

出力結果:

LOW: 低いレベル
MEDIUM: 中間のレベル
HIGH: 高いレベル