カテゴリ: Kotlin 更新日: 2026/01/10

KotlinのEnumクラスとは?初心者向けに列挙型の作り方と活用シーンをやさしく解説!

KotlinのEnumクラス(列挙型)の作り方と活用シーン
KotlinのEnumクラス(列挙型)の作り方と活用シーン

先生と生徒の会話形式で理解しよう

生徒

「Kotlinで『Enum(エニューム)』って出てきたんですが、これは何ですか?」

先生

「Enumとは、あらかじめ決まった選択肢や状態を、ひとまとめにして表すための特別なクラスです。日本語では『列挙型(れっきょがた)』とも呼ばれますよ。」

生徒

「選択肢? 状態? なんだか難しそう……」

先生

「大丈夫です。例えば『天気』とか『曜日』のように、決まった種類しかないものを使うときに便利なんです。分かりやすく解説していきますね。」

1. Enumクラス(列挙型)とは?Kotlinでの基本的な意味

1. Enumクラス(列挙型)とは?Kotlinでの基本的な意味
1. Enumクラス(列挙型)とは?Kotlinでの基本的な意味

KotlinのEnumクラスは、あらかじめ決まっている複数の選択肢や状態を、ひとつの型としてまとめて表現できる特別な仕組みです。日本語では「列挙型(れっきょがた)」と呼ばれることもあります。

たとえば、次のような場面でEnumが使えます。

  • 曜日(Monday, Tuesday, Wednesday など)
  • 天気(晴れ、雨、くもり)
  • 信号(赤、黄、青)

このように選べる値が決まっているとき、Enumを使うことで値の誤入力を防ぎ、読みやすく安全なコードになります。

Enumを使わない場合、文字列や数値で管理することになりますが、それでは「ありえない値」を間違って使ってしまう危険があります。Enumを使うと、定義された値だけが選べるようになるので、ミスを防ぐ手助けにもなります。

Kotlinでは、Enumは以下のように簡単に書くことができます:


enum class Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

このように列挙しておくことで、後から「今日は何曜日か」を判断したり、「平日か休日か」を条件分岐で処理する際にも使いやすくなります。

初心者の方でも、「複数の選択肢をまとめたい」「条件ごとに処理を分けたい」という場面では、Enumを活用するととても便利です。

2. KotlinでのEnumの基本構文

2. KotlinでのEnumの基本構文
2. KotlinでのEnumの基本構文

Enumクラスの書き方はとてもシンプルです。以下は、天気を表すWeatherというEnumの例です。


enum class Weather {
    SUNNY,
    CLOUDY,
    RAINY
}

このように、enum class 名前という形で定義します。SUNNYCLOUDYRAINYが、選べる種類(定数)になります。

3. Enumを使った条件分岐の例

3. Enumを使った条件分岐の例
3. Enumを使った条件分岐の例

定義したEnumを使って、when構文(条件分岐)で処理を分けることができます。


fun describeWeather(weather: Weather) {
    when (weather) {
        Weather.SUNNY -> println("今日は晴れです")
        Weather.CLOUDY -> println("今日はくもりです")
        Weather.RAINY -> println("今日は雨です")
    }
}

このように、Enumの種類によってメッセージを変えることができて、コードが読みやすくなります

4. 実行例を見てみよう!

4. 実行例を見てみよう!
4. 実行例を見てみよう!

fun main() {
    val todayWeather = Weather.SUNNY
    describeWeather(todayWeather)
}

このコードを実行すると、以下のような出力になります。


今日は晴れです

5. KotlinのEnumクラスにプロパティを持たせる方法

5. KotlinのEnumクラスにプロパティを持たせる方法
5. KotlinのEnumクラスにプロパティを持たせる方法

Enumにはプロパティ(値)を追加することもできます。例えば、交通信号の色に対して、待ち時間の秒数を持たせたいときは、次のように書きます。


enum class Signal(val duration: Int) {
    RED(60),
    YELLOW(5),
    GREEN(30)
}

このように(val duration: Int)と書くことで、各定数に固有の値を持たせることができます。

使うときは次のようにします:


fun main() {
    println("赤信号の時間は${Signal.RED.duration}秒です")
}

赤信号の時間は60秒です

6. Enumの定数一覧をループで使う方法

6. Enumの定数一覧をループで使う方法
6. Enumの定数一覧をループで使う方法

Enumクラスには、すべての定数をvalues()という関数で取得できます。これを使って繰り返し処理を行うことも可能です。


fun main() {
    for (signal in Signal.values()) {
        println("${signal.name} は ${signal.duration} 秒")
    }
}

RED は 60 秒
YELLOW は 5 秒
GREEN は 30 秒

このように、Enumの一覧を取得して1つずつ処理できるのは、とても便利です。

7. KotlinのEnumクラスの活用シーンとは?

7. KotlinのEnumクラスの活用シーンとは?
7. KotlinのEnumクラスの活用シーンとは?

KotlinのEnumクラスは、次のような場面でとても役立ちます。

  • 選択肢が限られている入力の管理(例:性別、支払い方法など)
  • 状態やモードの管理(例:アプリの画面状態、ゲームの難易度など)
  • 複数のオプションを見やすく整理したいとき

特に初心者の方には、間違った値を入力されないようにする安全な方法として、Enumは非常におすすめです。

まとめ

まとめ
まとめ

KotlinのEnumクラス(列挙型)は、あらかじめ決まった選択肢や状態を安全かつ読みやすく管理できる、とても便利な構文です。プログラムで「限られた中から選ぶ」という場面は意外と多く、たとえば天気・曜日・信号・モード・状態などを表現するのにぴったりです。
Enumを使えば、文字列や数値を直接使うよりもバグを防ぎやすく、読みやすく、保守しやすいコードになります。

基本的な使い方をしっかり覚えよう

Kotlinでは enum class 名前 { 値 } という構文でEnumを定義します。中には定数(列挙子)をカンマで区切って並べます。それを使って when 条件分岐で処理を振り分けるのが、もっとも基本的な活用方法です。

Enumにプロパティを持たせて拡張

KotlinのEnumは、単なる定数の集まりだけでなく、プロパティ(値)やメソッドを持たせることができます。たとえば信号機の色に待ち時間を持たせるような例は実用的です。


enum class Mode(val description: String) {
    EASY("初心者向け"),
    NORMAL("標準モード"),
    HARD("上級者向け")
}

fun printModeInfo(mode: Mode) {
    println("現在のモード:${mode.description}")
}

こうした工夫により、Enumは単なる文字や数値の代わりに、意味のある型としてプログラム全体の品質を高めてくれます

values()によるループ処理も覚えておこう

Enumには values() という関数が自動的に使えるようになっていて、すべての列挙子をまとめて処理できます。選択肢を一覧表示したいときや、デバッグ時にとても便利です。


for (mode in Mode.values()) {
    println("${mode.name}:${mode.description}")
}

このように、Enumクラスはさまざまな場面で使えます。「選択肢が限定されているデータ」はEnumに置き換えておくと、安全で分かりやすいコードになります。

Enumが活躍する具体的な場面

  • ゲームの難易度(EASY、NORMAL、HARD)
  • 画面の状態(LOADING、SUCCESS、ERROR)
  • 注文のステータス(受付中、発送済み、キャンセル)
  • ファイルの種類(画像、動画、テキスト)

これらのように選択肢が明確な場面では、Enumを使うことでミスのない設計が実現できます。初心者のうちは使いどころに迷うこともあるかもしれませんが、コードが複雑になる前にEnumで整理しておく習慣をつけておくと、あとでとても助かります。

Enumを使うと何が嬉しいのか?

- 間違った値を使えなくなる(安全)
- 値の意味が明確に見える(読みやすい)
- コード補完が効く(ミスしづらい)
- 条件分岐がスッキリする(メンテナンスが簡単)
Kotlinらしい設計に近づくためにも、Enumは非常に重要な存在です。

先生と生徒の振り返り会話

生徒

「Enumって最初は難しそうでしたけど、使ってみるとすごく便利ですね!」

先生

「そうですね。条件が限られている場面ではEnumが大活躍します。安全性も高まりますし、コードも読みやすくなります。」

生徒

「プロパティを付けられるのも驚きでした。普通の定数じゃできないことができるんですね!」

先生

「まさにその通りです。Enumはただの値ではなくて、型としての力を持っているんです。今後は条件分岐や状態管理のときに積極的に使っていきましょう。」

生徒

「はい!次のアプリではEnumで状態をまとめてみます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

KotlinのEnumクラスとは何ですか?列挙型ってどんなときに使うのですか?

Enumクラスとは、あらかじめ決まった選択肢をひとまとめにして扱える特別なクラスです。例えば「天気」「曜日」「信号」など、限られた値の中から選ぶような場面で使うと便利です。
関連記事:
カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのforループの基本!範囲・配列・コレクションの繰り返し処理
New2
Go言語
Go言語のスライスでappend時のメモリの仕組みを理解しよう!初心者でもわかる基礎解説
New3
Go言語
Go言語のスコープとは?ローカル変数・グローバル変数の違いと使い分け
New4
Go言語
Go言語のhttp.ResponseWriterとhttp.Requestの仕組みを理解しよう
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.3
Java&Spring記事人気No3
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.5
Java&Spring記事人気No5
Swift
Swiftで数値と文字列を相互変換!NumberFormatterで桁区切りや通貨表示をわかりやすく解説
No.6
Java&Spring記事人気No6
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.7
Java&Spring記事人気No7
Kotlin
Kotlinで画面遷移を実装しよう!初心者でもわかるIntentの使い方完全ガイド
No.8
Java&Spring記事人気No8
Swift
SwiftPMでのバージョン指定と互換性の考え方を初心者向けに徹底解説