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:冬
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送