(1) Javaのenumでフィールドを複数定義したり、値を取得する方法
(1-1) enumでフィールドを定義・取得する
(1-2) enumでフィールドを複数定義・取得する
(1) Javaのenumでフィールドを複数定義したり、値を取得する方法
今回はenumで複数のフィールドを定義・取得する方法についてご紹介します。
そもそもenumとは何か?どういった用途で使うのか?を知りたい方は以下を先にお読み頂くと、より理解がスムーズになります。
URL:https://rainbow-engine.com/java-enum-howto/
(1-1) enumでフィールドを定義・取得する
enum Size5 { // カッコ()内の数字を引数にコンストラクタを呼び出し LARGE (3), MEDIUM (2), SMALL (1) //(お作法) //定数の後ろにフィールドを定義する場合、定数とフィールドの間にコロンが必要 ; // フィールドを定義 private final int sizecode; // enum「Size2」のコンストラクタ Size5(int sizecode) { this.sizecode = sizecode; }
public class IT0214_enumSample5_field { public static void main(String args[]) { for(Size5 sz : Size5.values()) { System.out.println(sz.getSizeCode()+" : "+sz); } } } enum Size5 { // カッコ()内の数字を引数にコンストラクタを呼び出し LARGE (3), MEDIUM (2), SMALL (1) //(お作法) //定数の後ろにフィールドを定義する場合、定数とフィールドの間にコロンが必要 ; // フィールドを定義 private final int sizecode; // enum「Size2」のコンストラクタ Size5(int sizecode) { this.sizecode = sizecode; } // sizecodeのゲッター int getSizeCode() { return this.sizecode; } }
(1-2) enumでフィールドを複数定義・取得する
enumではフィールドを複数定義する事もできます。上記のサンプルにメンバ変数を更に1個追加したサンプルを掲載します。
(サンプルプログラム)
public class IT0214_enumSample6_field2 { public static void main(String args[]) { for(Size6 sz : Size6.values()) { System.out.println(sz.getSizeCode()+" : "+sz.getCode()+" : "+sz); } } } enum Size6 { // カッコ()内の数字を引数にコンストラクタを呼び出し LARGE (3,"L"), MEDIUM (2,"M"), SMALL (1,"S") //(お作法) //定数の後ろにフィールドを定義する場合、定数とフィールドの間にコロンが必要 ; // フィールドを定義(複数個) private final int sizecode; private final String code; // enum「Size2」のコンストラクタ Size6(int sizecode, String code) { this.sizecode = sizecode; this.code = code; } // ゲッターメソッド int getSizeCode() { return this.sizecode; } String getCode() { return this.code; } }
(補足)
Sizeはサイズの定数(LARGE、MEDIUM、SMALL)を表すためのenumです。メンバ変数は2つあり「サイズコード(3/2/1)」を保持するための「sizecode」と、「略称(L/M/S)」を保持するための「code」があります。
enumの一番最初の部分で、コンストラクタを3回呼び出しており、LARGEとMEDIUMとSMALLのenumのインスタンスを生成しています。
main文ではfor文でenumの定数分ループして、それぞれの「サイズコード」と「略称」を取得しています。
(実行結果)