Java 列挙型
列挙型
enum
は、定数 (最終変数などの変更不可能な変数) のグループを表す特別な「クラス」です。)
enum
を作成するには、 (クラスまたはインターフェイスの代わりに)enum
を使用し、定数をカンマで区切ります。大文字にする必要があることに注意してください。
例
enum Level {
LOW,
MEDIUM,
HIGH
}
enum
定数にはドット構文を使用してアクセスできます。
Level myVar = Level.MEDIUM;
Enum は「列挙」の略で、「具体的にリストされた」という意味です。
クラス内の列挙型
クラス内にenum
を含めることもできます。
例
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
出力は次のようになります。
MEDIUM
Switch文の列挙型
列挙型は、対応する値を確認するためにswitch
文でよく使用されます。
例
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
}
}
出力は次のようになります。
Medium level
列挙型をループする
enum 型には、すべての enum 定数の配列を返すvalues()
メソッドがあります。このメソッドは、列挙型の定数をループする場合に便利です。
例
for (Level myVar : Level.values()) {
System.out.println(myVar);
}
出力は次のようになります。
LOW
MEDIUM
HIGH
MEDIUM
HIGH
列挙型とクラスの違い
列挙型には、クラスと同様に、属性とメソッドを含めることができます。唯一の違いは、enum定数が publicとstatic、final (変更不可、オーバーライドできない) であることです。
enumを使用してオブジェクトを作成することはできません。また、他のクラスを拡張することもできません (ただし、インターフェイスを実装することはできます)。
列挙型を使用する理由とタイミング
月、日、色、トランプなど、変更されないことがわかっている値がある場合は列挙型を使用します。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。