Javaには、固定された定数のセットを扱うために使用される特別なデータ型、Enum(列挙型)があります。
Enumを使うことで、コードの可読性や保守性が向上し、定数の管理が簡単になります。この記事では、Enumの基本的な使い方から応用的な使い方まで、初心者向けに解説します。
Enumとは?
Enum(列挙型)は、あらかじめ定義された固定の値(列挙子)を持つデータ型です。
主に以下のような用途で使用されます:
- 状態や種類を表す定数の管理
- 定数が持つ値やメソッドを追加したい場合
Enumは、enum
キーワードを使用して定義します。
Enumの基本的な使い方
Enumの基本構文は以下の通りです。
enum Enum名 {
定数1, 定数2, 定数3;
}
曜日を表すEnum
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
public class Main {
public static void main(String[] args) {
Day today = Day.FRIDAY;
if (today == Day.FRIDAY) {
System.out.println("今日は金曜日です!");
}
}
}
ポイント
- Enumの定数はすべて大文字で記述するのが一般的です。
- 定数同士の比較には
==
を使用します。
Enumの応用:メソッドや値の追加
Enumは、通常のクラスのようにフィールドやメソッドを持つことができます。
定数ごとに異なる値を持たせる
enum Day {
MONDAY("月曜日"),
TUESDAY("火曜日"),
WEDNESDAY("水曜日"),
THURSDAY("木曜日"),
FRIDAY("金曜日"),
SATURDAY("土曜日"),
SUNDAY("日曜日");
private final String japaneseName;
// コンストラクタ
Day(String japaneseName) {
this.japaneseName = japaneseName;
}
// 値を取得するメソッド
public String getJapaneseName() {
return japaneseName;
}
}
public class Main {
public static void main(String[] args) {
for (Day day : Day.values()) {
System.out.println(day + ": " + day.getJapaneseName());
}
}
}
出力結果
MONDAY: 月曜日
TUESDAY: 火曜日
WEDNESDAY: 水曜日
THURSDAY: 木曜日
FRIDAY: 金曜日
SATURDAY: 土曜日
SUNDAY: 日曜日
ポイント
- 各定数に固有の値(ここでは
japaneseName
)を持たせることができます。 values()
メソッドを使用すると、すべてのEnum定数を取得できます。
Enumの便利な機能
定数の順序を取得: ordinal()
ordinal()
メソッドを使用すると、Enum定数の定義順序(0から始まる)を取得できます。
Day day = Day.MONDAY;
System.out.println(day.ordinal()); // 出力: 0
文字列からEnum定数を取得: valueOf()
文字列をEnum定数に変換する場合、valueOf()
メソッドを使用します。
Day day = Day.valueOf("FRIDAY");
System.out.println(day); // 出力: FRIDAY
注意: 不正な文字列を渡すとIllegalArgumentException
が発生します。
Enumの実践例
ランチメニューを管理するEnum
enum LunchMenu {
PASTA(850),
CURRY(750),
SALAD(650);
private final int price;
LunchMenu(int price) {
this.price = price;
}
public int getPrice() {
return price;
}
}
public class Main {
public static void main(String[] args) {
for (LunchMenu menu : LunchMenu.values()) {
System.out.println(menu + ": " + menu.getPrice() + "円");
}
}
}
出力結果
PASTA: 850円
CURRY: 750円
SALAD: 650円
Enumを使うメリット
コードの可読性向上: Enumを使用すると、定数がどのような意味を持つのかが一目でわかります。
安全性: 不正な値が使用される可能性を排除できます。
メンテナンス性: 定数を一元管理できるため、変更が容易です。
Enumを使うメリット
JavaのEnumは、固定された定数を効率的に管理し、コードの可読性と安全性を向上させるための強力なツールです。基本的な使い方だけでなく、値やメソッドを持たせることで、さらに柔軟に利用できます。特に、状態や種類を表す場面で効果的なので、ぜひ活用してみてください!
コメント