初心者のためのJava講座。Enum(列挙型)の色々な使い方
  • facebookページ
  • twitterページ
  • 2019.08.18

    初心者のためのJava講座。Enum(列挙型)の色々な使い方

    Javaに限らずですが、わからないことを調べようとしてネット検索をしても、あと少しのところで「そうじゃない…そうじゃないんだよ」ってこと、結構ありませんか?スクリプトをバリバリ組める人が書けば書くほど無意識のうちに説明を端折っている場合が凄く多い気がします。本当に初心者の方(といっても最低限Javaの使い方や基本中の基本は他所で勉強してきてくださいね)が見ても納得のいく説明をしてくれてる親切なサイトって実は凄く貴重なんです。
    本記事ではEnum(列挙型)についての解説をしていきます。因みに列挙型っていうのはEnumの名称定義です。これをみて「あーなるほど。そういうことだったのか」くらいは思ってもらえると非常に嬉しく思います。

    Enum(列挙型)の特徴
    • 複数の定数(列挙子)をまとめて管理できる。
    • 定数が変更されるたびに書き換える必要が有る。
    • 列挙子に値を付与する場合、フィールドとコンストラクタを定義する必要が有る。
    • コンストラクタのアクセス修飾子はprivateのみ可能。

    列挙型:定義

    Enum(列挙型)の定義は以下の通りとなります。

    それでは早速サンプルコードで確認してみましょう。

    実行結果

    まずは基本形の定義です。ここではKotobaを定義しています。またKotobaを使用する為にオブジェクト宣言が必要になるため、オブジェクトとしてtangoを宣言しています。
    宣言したオブジェクトに列挙子が格納されますので、結果としてHogeが出力されます。Enumが保持している定数(列挙子)のみを取得する為、他の文字列が出力されることはありません。これがEnumのメリットでもあります。

    Switch文

    次はSwitch文で使う場合の説明です。
    Switch文についてもJava7からは記述が簡潔になりました。簡単に見てみましょう。

    実行結果

    組み合わせて使う

    Enumは複数の型を組み合わせて使うことも出来ます。

    実行結果

    列挙子のフィールドに「Hoge」「Fuga」をそれぞれ設定し、同時にコンストラクタの実装、それからメソッドを追加しています。
    このように複数の値を設定することも可能です。

    メソッドの使い方

    Enumには予め用意されたいくつかのメソッドがありますが、その一つである「valueOf」について説明していきます。

    valueOfメソッド

    enumのvalueOfは引数で渡した文字列から列挙子名を取得するときに使います。早速サンプルコードを見てみましょう。

    実行結果

    このコードでは”Hoge”という文字列で”Kotoba”という型名に参照をかけています。
    今回は合致する列挙子があったため、列挙子に予め定義したString型のフィールドが返ってきています。
    一致する列挙子が無い場合にはIllegalArgumentExceptionが返ってきます。

    ポテパンダの一言メモ

    valueOfメソッド以外にも予め用意されているメソッドがありますが、そのメソッドのうちのいくつかを紹介します。
    values()
    定義した列挙子を定義された順に全て返す
    toString()
    宣言した文字列を取得する
    ordinal()
    定義された列挙子の順番を返す

    Enumを使う場合の注意

    列挙型はクラスの一種と考えてください。上でも簡単にコードを書きましたが、フィールドやコンストラクタも定義することが出来ます。
    またコンストラクタを定義することで初期値にint型やString型を設定することも可能です。
    初期値を設定する場合にはフィールドの定義を忘れないようにしてください。

    なおコンストラクタを定義する場合にはアクセス修飾子はprivateのみ使用可能となることに注意してください。
    また、フィールドの定義やコンストラクタ処理を記述しない場合にはコンパイルエラーが発生します。
    値を設定するときには、フィールド、コンストラクタ、メソッドを一つのセットとして記述することを覚えておきましょう。

    まとめ

    今回はEnum(列挙型)についてご説明しましたが、初心者の方にも恐らく十分に理解いただける内容となっているはずです。
    プログラミングを始めたくても、いきなりわからないことだらけでネットを見ても十分な説明が無い場合、本当に嫌になりすぐに投げ出してしまいますよね。
    こうやってひも解いて考えていけば意外とプログラミングって簡単なんだって思える部分も多いと思います。
    これを機会に是非本格的に勉強していきましょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE