僕のようなJava初心者や、JavaGoldの資格取得に向けて、勉強をしている方にこの記事がお役に立てれば幸いです。
Enumとは?
一言で表すと、定数をまとめて定義するものです。
どの場面で必要か?
最も頻繁に利用するのはEnum型同士を比較して、値がどれに該当するか調べるのに使われる(引用 Javaの定数はEnumで! )
どのように使うの?
定義方法
Enumの定義は以下の構文で行います。
アクセス修飾子 enum 列挙名{列挙子1,列挙子2....}
これだけでは、イメージが湧かないと思うので、サンプルコードをご覧ください。
public enum Sports{
SOCCER,
BASEBALL,
BASKETBALL,
}
public class Main{
public static void main (String[] args){
Sports favorite = Sports.SOCCER;
switch(favorite){
case SOCCER:
System.out.println("サッカーが好きです。");
break;
case BASEBALL:
System.out.println("野球が好きです。");
break;
case BASKETBALL:
System.out.println("バスケが好きです。");
break;
}
}
}
結果
サッカーが好きです。
Enumに定義するコンストラクタのアクセス修飾子はprivateでなくてはいけません。 省略した場合は、暗黙的にprivateであると解釈されます。
これだけは覚えておきたいEnumが持つメソッド
この2点だけ覚えておけば、JavaGoldのEnumに関する問題は対策できるはずです。
valueOf
valueOfは名称の文字列に対応するEnumを戻します。
先程の例だとvalueOfの引数に"BASKETBALL"を定義するとEnumの"BASKETBALL"が戻ります。
System.out.println(Sports.valueOf("BASKETBALL"));
結果
BASKETBALL
values
valuesは全てのEnumの配列を返すstaticメソッドです。
...省略
for(Sports favorite : Sports.values()){
System.out.prontln(favorite);
}
結果
SOCCER
BASEBALL
BASKETBALL
まとめ
・Enumとは定数をまとめて定義するもの。
・valueOfメソッドは、名称の文字列に対応するEnumを戻す。
・valuesメソッドは、全てのEnumの配列を返す。
参考文献
・徹底攻略Java SE 11 Gold問題集
・Javaの定数はEnumで! Enumの使い方から考え方までお伝えします