Java列挙型
列挙型
Anは、定数のグループ(変数などの変更できない変数)enum
を表す特別な「クラス」です
。final
を作成するには、 (クラスまたはインターフェイスの代わりに)キーワードenum
を使用し、定数をコンマで区切ります。enum
それらは大文字でなければならないことに注意してください:
例
enum Level {
LOW,
MEDIUM,
HIGH
}
ドット構文を使用enum
して定数にアクセスできます。
Level myVar = Level.MEDIUM;
列挙型は「列挙型」の略で、「具体的にリストされている」ことを意味します。
クラス内の列挙型
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
列挙型をループする
列挙型には、values()
すべての列挙定数の配列を返すメソッドがあります。このメソッドは、列挙型の定数をループする場合に役立ちます。
例
for (Level myVar : Level.values()) {
System.out.println(myVar);
}
出力は次のようになります。
LOW
MEDIUM
HIGH
列挙型とクラスの違い
enum
缶は、と同じように、class
属性とメソッドを持っています。唯一の違いは、列挙型定数が、、public
およびstatic
(final
変更不可-オーバーライドできない)であることです。
を使用してオブジェクトを作成したり、他のクラスを拡張したりするenum
ことはできません(ただし、インターフェイスを実装することはできます)。
列挙型を使用する理由と時期
月の日、日、色、トランプのデッキなど、変更されないことがわかっている値がある場合は、列挙型を使用します。