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のことは気にしていきたいと思います!