Java Silver SE17対策:enumとswitch文の組み合わせで分岐設計をスマートに整理する
Javaの条件分岐を整理する中で、enum と switch 文の組み合わせは 「分岐の意図を明確にし、コードの見通しを良くする」 ための強力な手段です。
この記事では、Java Silver SE17の試験対策にも役立つよう、enum を活用した分岐設計の考え方と、switch 文との組み合わせによる実践的な整理術を 納得感重視 で解説します。
🔸 enumの基本構文とメリット
まずは enum の基本構文から確認しておきましょう。
public enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
✅ enumのメリット
- 定数の集合を型として定義できる
-
switch文と組み合わせることで、分岐の網羅性 を担保できる - 可読性・保守性が向上し、意図が明確なコード設計 が可能になる
🔸 switch文との組み合わせ例
enum を使った switch 文の基本的な使い方を見てみましょう。
Season season = Season.SUMMER;
switch (season) {
case SPRING:
System.out.println("花見の季節です");
break;
case SUMMER:
System.out.println("海に行きましょう!");
break;
case AUTUMN:
System.out.println("紅葉がきれいですね");
break;
case WINTER:
System.out.println("こたつでぬくぬく");
break;
}
✅ ポイント
-
enumを使うことで、caseの漏れがコンパイル時に検出される -
defaultを使わずに網羅的に書くことで、意図が明確な分岐設計になる - Java Silver SE17では、enum型のswitch文が頻出テーマ
🔸 より実践的な設計:enumに振る舞いを持たせる
実務では、switch 文を使わずに enum 自身に処理を持たせる設計も有効です。
public enum Season {
SPRING {
public String message() {
return "花見の季節です";
}
},
SUMMER {
public String message() {
return "海に行きましょう!";
}
},
AUTUMN {
public String message() {
return "紅葉がきれいですね";
}
},
WINTER {
public String message() {
return "こたつでぬくぬく";
}
};
public abstract String message();
}
✅ この設計のメリット
-
switch文を使わずに、enumの各値に対応する処理を直接定義できる - 責務の分離・保守性の向上につながる
- 新しい値を追加する際も、分岐の追加漏れを防げる
🔸 試験対策ポイントとまとめ
| 試験頻出ポイント | 解説 |
|---|---|
| enum型のswitch文 | caseの網羅性・型の扱いに注意 |
| defaultの有無 | enumでは網羅的に書くことでdefault不要になる |
| enumの応用設計 | 振る舞いを持たせることでswitch文を省略できる |
✅ まとめ
-
enum×switchは試験でも実務でも重要な設計パターン - 分岐の意図を明確にし、読みやすく・拡張しやすいコードが書ける
-
enumに振る舞いを持たせることで、switch文を使わない設計も可能
次回は、enum を使った状態管理や、Map との組み合わせによる柔軟な分岐設計について掘り下げていきます。納得感と体系的な理解をさらに深めて、Java Silver SE17合格に一歩近づきましょう!