enum(列挙型)は、定数の有限集合を定義する。

package com.fc2web.itref;

public class Sample {

    enum Season { SPRING, SUMMER, AUTUMN, WINTER };

    public static void main(String[] args) {

        Season season = Season.SUMMER;

        System.out.println(season);
    }
}

enum型の基底クラスはjava.lang.Enumである。したがってEnumクラスのメソッドを呼び出すことができる。

Enumクラスのメソッド
メソッド 説明
public static final 列挙名 valueOf(String name); 文字列から定数インスタンスを取得する。
public static final 列挙名[] values(); 宣言された定数すべてを含む配列(順序は記述順)を返す。

また、他に以下のようなメソッドが定義されている。

enumメソッド
メソッド 説明
public final String name(); 宣言で定義された定数名を返す。
public String toString(); 定数名を返す。デフォルトではnameメソッドと同じ値を返すが、オーバーライドすることも できる。
public final int ordinal(); 定数の宣言された順番を返す。

enumのvaluesメソッドは、宣言された定数すべてを含む配列(順序は記述順)を返す。

public class Sample {

    enum Season { SPRING, SUMMER, AUTUMN, WINTER };

    public static void main(String[] args) {

        for (Season season : Season.values()) {
            System.out.println(season.ordinal() + ":" + season);
        }
    }
}

上記プログラムの実行結果を示す。

0:SPRING
1:SUMMER
2:AUTUMN
3:WINTER
public class Sample {

    enum Season {
        SPRING ("春"),
        SUMMER ("夏"),
        AUTUMN ("秋"),
        WINTER ("冬");

        private String name;

        Season(String name) {
            this.name = name;
        }

        public String toString() {
            return name;
        }
    };

    public static void main(String[] args) {

        for (Season season : Season.values()) {
            System.out.println(season.name() + ":" + season.toString());
        }
    }
}

上記プログラムの実行結果を示す。

SPRING:春
SUMMER:夏
AUTUMN:秋
WINTER:冬
スポンサーリンク