!!!SJC-P 列挙型 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/enums.html *独自のクラスとして宣言できる **public または デフォルト修飾子しか指定できない(9) *クラスのメンバとして宣言できる(1) *セミコロンは省略可能(2) *コンストラクタ(public以外)を定義できる(4) *メソッドを定義できる(5) *内容の列挙には、values()メソッド *メソッド内部に宣言できない(8) package enumerate; public class EnumTest1 { enum ENUM_NUM { ONE, TWO, THREE }; // クラスのメンバとして宣言できる(1) enum ENUM_WEEK { SUN, MON, TUE } // セミコロンは省略可能(2) enum ENUM_SIZE { BIG(10), MIDIUM(5), SMALL(1), UNKNOWN(0) { public String toString() { // 要素独自のメソッドをオーバーライドできる(3) return "UNKNOWN"; } } ; private int size; ENUM_SIZE(int size) { // コンストラクタ(public以外)を定義できる(4) this.size = size; } public int getSize() { // メソッドを定義できる(5) return this.size; } public String toString() { return String.valueOf(this.size); } } public static void main(String[] args) { System.out.println(ENUM_SIZE.BIG); System.out.println(ENUM_SIZE.UNKNOWN); // switch 文にて利用できる(6) ENUM_WEEK color = ENUM_WEEK.TUE; switch(color) { case SUN: System.out.println("日"); break; case MON: System.out.println("月"); break; case TUE: System.out.println("火"); break; default: System.out.println("not match."); } // 内容の列挙には、values()メソッド(7) ENUM_NUM[] nums = ENUM_NUM.values(); for (ENUM_NUM num : nums) { System.out.println(num); } } public void testEnum() { // メソッド内部に宣言できない(8) // enum ENUM_ALPAH { A, B, C}; } } // public または デフォルト修飾子しか指定できない(9) /* public */ enum ENUM_COLOR { RED, GREEN, BLUE }