(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の定数分ループして、それぞれの「サイズコード」と「略称」を取得しています。
(実行結果)
