【Java開発】第25回 enum

Java入門講座

はじめに

皆さん。こんにちは!

DreamHanksの254cmです。

今回はenumについて説明していきます。

Java記事のまとめはこちらです。

前回の記事は【Java開発】第24回 Collection Frameworkです。

enumとは?

enumはJava5から追加されたものであり、定数の集合を意味します。

 

final staticキーワードを利用しても定数を定義することができますが、

 

enumは作成方法がすごく簡単なので、可読性が高いです。

 

そして、enumもクラスの一つなので、定数のデータ型を定義することができます。

 

つまり、意図した定数値だけを代入することができる変数を生成できます。

 

enumの書き方

〇enumクラスの定義

上記のようにenumクラスで定義される定数はアクセス制御子も、データ型もいりません。

 

ただ、定数の名前たけ定義すればいいです。

 

上記のように定義された定数は名前と同じような文字列のように使えます。

 

サンプル

上記のように別途の.javaファイルでenumを定義することができます。

 

定数名はunicodeの文字を使うことができますが、命名規約に従って英語の大文字で作成することを推奨します。

 

サンプル2

上記のように他のクラスと同じファイルで作成することもできます。

 

定数の使用は上記のようにenumクラスのオブジェクトを生成して使います。

 

出力結果

 

サンプル3

上記のようにクラスのフィールドとして作成することもできます。

 

〇enumの定数に値を付与

enumの定数に値を定義するためには括弧を追加して、その中に値を作成するといいです。

 

しかし、定数に値を格納するフィールドとコンストラクタおよび該当フィールド変数のgetメソッドを作成する必要があります。

 

サンプル

 

上記のように定数の値を格納するフィールドとコンストラクタ、getメソッドを作成しなければなりません。

出力結果

 

enumの主なメソッド

すべてのenumは「java.lang.Enum」クラスを継承しています。

 

なので、enumはEnumクラスのメソッドを使うことができます。

 

サンプル

 

出力結果

enumの長点

enumは可読性が高いこと以外にも色んな長点があります。

 

final staticで宣言した定数を使用することよりいいところをサンプルを見ながら説明します。

 

サンプル1

 

上記のサンプルのように整数型の定数の場合、二つの情報に対する定数を宣言しましたが、

 

値が同じである場合、データの意味は異なりますが、ソースコード上では同じ情報として認識されます。

 

しかし、enumの定数は同じ値を持つ二つの定数を異なる定数で認識されます。

 

出力結果

 

サンプル2

上記のサンプルのようにfinal staticで定義した定数を他の変数の値として代入する場合、

 

代入される変数は定数ではない、意図されていない値も代入することができます。

 

しかし、enumクラスのオブジェクトの場合、意図されていない値を代入することができません。

 

終わりに

今回の記事は以上になります。

次回はObjectクラスを学びましょう。

ご覧いただきありがとうございます。

Java入門講座
スポンサーリンク
dreamhanksをフォローする
スポンサーリンク
DreamHanks Blog

コメント