いつか、技術ブログを

新人SE(OJT中)が技術ブログを書きたがっているブログです

Javaのenumの学習メモ

勉強しなきゃな、と思いながら放置してきた列挙型(enum型)の書き方について勉強したメモです。

enumについてちゃんと知りたい方(ひとまかせ)

↓初心者にもわかりやすい説明でした! www.sejuku.net

↓公式の説明。英語。日本語訳ないのかな? https://docs.oracle.com/javase/8/docs/technotes/guides/language/enums.html

とりあえず宣言してみる

public class EnumSample1{
    enum Season { WINTER, SPRING, SUMMER, FALL };
    
    public static void main (String[] args){
        Season season = Season.WINTER;
        System.out.println(season);
    }

}

実行結果

WINTER

switch文も使ってみる

public class EnumSample2{
    enum Season { WINTER, SPRING, SUMMER, FALL };
    
    public static void main (String[] args){
        printSeason(Season.WINTER);
        printSeason(Season.SPRING);
        printSeason(Season.SUMMER);
        printSeason(Season.FALL);
    }

    static void printSeason(Season season){
        switch(season){
        case WINTER: System.out.println("冬だよ!昔は好きだったけど最近体にこたえるな…");
                 break;
        case SPRING: System.out.println("春だよ!虫がだんだんでてくる…嫌だ…");
                 break;
        case SUMMER: System.out.println("夏だよ!暑いね!");
                 break;
        case FALL: System.out.println("秋ってfallとも言うんだね!知らなかった!");
               break;
        }

    }
}

実行結果

冬だよ!昔は好きだったけど最近体にこたえるな…
春だよ!虫がだんだんでてくる…嫌だ…
夏だよ!暑いね!
秋ってfallとも言うんだね!知らなかった!

書いてる途中で、「列挙型はローカルにできません」ってエラーが出てきて???って感じだったんですけど、上記コードのprintSeason内に列挙型を宣言してたのが原因でした。

おわり

書いてはみたんですが、どういう利点があるのかよくわかんなかったです…
実際に自分で考えてなんか作ってみないとenumの便利なところはわからない気がするので「enumっていうのがあったな…」って覚えておきたいと思います。

そもそもswitch文をいつも書かないためbreak書くの忘れてたりしてたので、今度switch文の書き方についてもまとめたいです!

追記

今読んでる本(Javaサーバーサイドプログラミングパーフェクトマスター (Perfect master) (Perfect Master 163)の11章2節)で列挙型が使われてました。

public enum Genre {
    IT, NONFIC
}

オンラインブックストアを作るってところで出てきました。メリットとしては、
・本を登録するときに、新しいジャンルを勝手に作ったりしないようにする
・NONFICをNonficって書いたりして別のジャンルとして認識されることを防ぐ
みたいなことがあるのかな?と思いました(本に書いてあったわけではないです)。
引き続きenumのことは気にしていきたいと思います!