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: 高いレベル