0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

“なぜそうなるのか?”を全部調べたJava Silver SE17黒本攻略記 #4

Posted at

Java Silver SE17対策:enumとswitch文の組み合わせで分岐設計をスマートに整理する

Javaの条件分岐を整理する中で、enumswitch 文の組み合わせは 「分岐の意図を明確にし、コードの見通しを良くする」 ための強力な手段です。
この記事では、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合格に一歩近づきましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?