はじめに
今回は列挙型と呼ばれるenumについて見ていく。
使い方について、実際に作ったコードで一つずつ理解することを目標にする。
列挙型とは?
「enum」と表されるこのコードは英語の「enumerated」の略。
日本語訳で「具体的に並べ立てる:列挙」という。
列挙型は複数の定数をまとめることができる特別な種類の「Javaクラス」。
変数については以下参照。
変数とは?:データを表す方法についてまとめたby Javaプログラミング初心者Vol.34
列挙型の作り方
クラスやインターフェースなどを作成するときに使う「class」や「interface」の代わりに「enum」を使用する。
クラスの作り方は以下参照。
クラスを自分で新しく作る方法 by Javaプログラミング初心者 Vol.36
インターフェースの作り方は以下参照。
【Javaプログラミング】interface(インターフェース)とは?-プロショvol.57
enumの中に書かれる定数は、それぞれカンマ(,)で区切る。
定数の文字は大文字で書かれる。
enumの構文は以下の通り。
列挙型のプログラム
以下に列挙型を使ったプログラムを作ってみた。
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SANDAY
}
public class WeeklyMain {
public static void main(String[] args) {
weekly youbi=weekly.TUESDAY;
System.out.println(youbi);}
}
実行すると以下が表示される。
enumの中には定数を並べ立てる。
メインクラスでenumを呼び出すときには、オブジェクトは作成することは出来ない。
呼び出し方が通常と少し異なるから注意が必要。
基本的なオブジェクトの作り方は以下参照。
自作したクラスに状態を表すデータを作る-オブジェクトの作成方法 by Javaプログラミング初心者 Vol.37
オブジェクトを作成するわけではないから「new」がいらないのか。
「weekly youbi=weekly.TUESDAY;」
イコールの左側は今までと一緒。
右側は、「new」ではなくenumクラスの名前と、enumの中に書いた表示させたい定数をドットで繋ぐ。
これで「youbi」というオブジェクト名に定数の「TUESDAY」が格納された。
「System.out.println( );」の中に「youbi」を入れることでTUESDAYが表示される。
クラスの中にenumを書いた場合
上で見たのはメインメソッドがあるクラスの外側に書かれたものだった。
enumはクラスの中にも書くことができる。
public class WeeklyMain {
enum weekly{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SANDAY
}
public static void main(String[] args) {
weekly youbi=weekly.TUESDAY;
System.out.println(youbi);
}
}
クラスの外側に書かれていたenumの部分を「WeeklyMain」クラスの直下に書いたもの。
これを実行しても上と同じ結果の「TUESDAY」が得られる。
ただ、enumはメインメソッドの中には書くことができず、書くとエラーが出る。
列挙型の特徴
列挙型の特徴として以下のものが挙げられる。
- クラスのような形を持ち、中にコンストラクタとメソッドを使用することができる
- ほかのクラスの中にも書くことができる
- インターフェースを使うこともできるが、匿名クラスのように拡張することはできない
- forループやswitchを使うことができる
- 最初から「public」「static」「final」という要素が含まれている
enumはどのクラスからでもアクセスできる(public)し、オブジェクトの作成不要(static)で、初期値を変えることができない(final)ということ。
最後に
曜日、春夏秋冬など、変わらない(変えたくない)情報の時にenumを使うといい。
オブジェクトは作成できないのが今までとちょっと違うけれど、呼び出し方は似ているから覚えやすそう。
今までに見てきたコードと組み合わせて使ってみたいと思った。
コメント