カテゴリ: Kotlin 更新日: 2025/10/15

Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!

Kotlinのデータクラス(data class)とは?便利な特徴と使い方
Kotlinのデータクラス(data class)とは?便利な特徴と使い方

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

生徒

「Kotlinのデータクラスってよく聞くけど、どういう意味ですか?全然イメージがわかなくて…」

先生

「Kotlinのdata class(データクラス)は、主にデータを入れておくための特別なクラスです。面倒なコードを自動で作ってくれる便利な機能がついていますよ。」

生徒

「どんな場面で使うんですか?普通のクラスと何が違うんですか?」

先生

「それでは、Kotlinのデータクラスの基本から使い方まで、一緒に見ていきましょう!」

1. Kotlinのデータクラス(data class)とは?

1. Kotlinのデータクラス(data class)とは?
1. Kotlinのデータクラス(data class)とは?

Kotlinのdata class(データクラス)は、名前のとおり「データを扱うためのクラス」です。つまり、情報をひとまとめにして管理するのに便利なしくみです。

例えば、人の情報(名前・年齢など)をまとめて持ちたいときに使えます。

通常のクラスでは、equals()hashCode()toString()といった機能を自分で書かないといけませんが、データクラスならそれらをKotlinが自動で用意してくれます。

2. データクラスの基本的な書き方

2. データクラスの基本的な書き方
2. データクラスの基本的な書き方

Kotlinでデータクラスを作るには、dataというキーワードを使います。

たとえば「人の情報」をまとめるクラスは、次のように書きます:


data class Person(val name: String, val age: Int)

このPersonクラスは、名前と年齢という2つの情報(プロパティ)を持ちます。

3. データクラスを使ってみよう

3. データクラスを使ってみよう
3. データクラスを使ってみよう

では、このデータクラスを実際に使ってみましょう。次のコードでは、人のインスタンスを作って、出力しています。


fun main() {
    val person1 = Person("太郎", 25)
    println(person1)
}

このコードを実行すると、次のように出力されます:


Person(name=太郎, age=25)

toString()が自動で用意されているので、見やすく表示されます。

4. データクラスの便利な特徴とは?

4. データクラスの便利な特徴とは?
4. データクラスの便利な特徴とは?

Kotlinのデータクラスには、以下のような便利な特徴があります。

  • 自動でequals()hashCode()を生成:2つのデータが同じ内容かどうかを簡単に比較できます。
  • 自動でtoString()を生成:データの中身を見やすく出力できます。
  • copy()関数が使える:一部の値だけを変えた新しいオブジェクトが作れます。
  • 分解宣言(Destructuring Declaration):データを1つずつ取り出して使えます。

5. copy関数を使ってみよう

5. copy関数を使ってみよう
5. copy関数を使ってみよう

たとえば、「年齢だけ違う別の人」を作りたいときには、次のようにcopy()関数を使います:


fun main() {
    val person1 = Person("太郎", 25)
    val person2 = person1.copy(age = 30)
    println(person2)
}

Person(name=太郎, age=30)

名前はそのままで、年齢だけ変えた新しいPersonが作れました。

6. データの取り出しもかんたんにできる!

6. データの取り出しもかんたんにできる!
6. データの取り出しもかんたんにできる!

データクラスを使うと、1つずつの値を簡単に取り出すこともできます。これを「分解宣言」といいます。


fun main() {
    val person = Person("花子", 22)
    val (name, age) = person
    println("名前:$name")
    println("年齢:$age")
}

名前:花子
年齢:22

このように、(name, age)のように書くことで、クラスの中の値をバラバラに取り出せるんです。

7. データクラスを使うとコードがすっきり!

7. データクラスを使うとコードがすっきり!
7. データクラスを使うとコードがすっきり!

データクラスを使うと、自動的に必要な機能がそろっているので、コードが短くなり、見やすくなります。

特に、プログラミング初心者にとっては、複雑なメソッドを書く必要がないので、とても学びやすくなります。

「データを入れるだけのクラス」は、data classにするだけで、色々な処理が自動でできるようになります。

8. データクラスを使うときの注意点

8. データクラスを使うときの注意点
8. データクラスを使うときの注意点

便利なデータクラスですが、いくつかのルールがあります。

  • 少なくとも1つのプロパティ(valまたはvar)が必要です。
  • abstractopensealedinnerなどとは一緒に使えません。

これは、データクラスが「データを安全に管理すること」を目的としているからです。

9. データクラスの活用例:住所データを扱う

9. データクラスの活用例:住所データを扱う
9. データクラスの活用例:住所データを扱う

実際のアプリ開発では、たとえば「ユーザーの住所情報」なども、データクラスを使って表現できます。


data class Address(val prefecture: String, val city: String, val postalCode: String)

fun main() {
    val address = Address("東京都", "渋谷区", "150-0001")
    println(address)
}

Address(prefecture=東京都, city=渋谷区, postalCode=150-0001)

このようにして、住所の情報もひとまとめにして管理できます。

まとめ

まとめ
まとめ

Kotlinのデータクラス(data class)は、プログラミング初心者にとっても非常に扱いやすく、実用性の高い機能です。データをまとめて扱いたいときに便利で、わざわざequals()toString()などのメソッドを自分で書かなくても、Kotlinが自動で用意してくれるため、コードがすっきりし、可読性も高くなります。

データクラスは、複数の関連データを一つのまとまりとして表現するのに最適で、たとえば「名前」と「年齢」、「都道府県」と「市区町村」などのように、意味のあるデータを組み合わせて管理したいときに非常に役立ちます。さらに、copy()関数や分解宣言(Destructuring Declaration)を使うことで、柔軟かつ直感的にデータ操作ができるのも大きな魅力です。

以下は、実践的なデータクラスのサンプルコードです。住所とユーザーの情報をまとめて扱っています。


data class Address(val prefecture: String, val city: String, val postalCode: String)
data class User(val name: String, val age: Int, val address: Address)

fun main() {
    val address = Address("神奈川県", "横浜市", "220-0012")
    val user = User("佐藤", 35, address)

    println(user)

    // copyを使って年齢だけ変えた別のユーザーを作成
    val olderUser = user.copy(age = 40)
    println(olderUser)

    // 分解して名前と年齢だけを取り出す
    val (name, age, _) = user
    println("名前: $name")
    println("年齢: $age")
}

このように、データクラスを使うことで、複雑なデータ構造も簡単に表現でき、保守もしやすくなります。クラスを短く書きたい、比較や出力を楽にしたいという場面では、まずdata classの利用を検討するのがおすすめです。

また、Kotlinのデータクラスは、Androidアプリ開発やサーバーサイド開発でもよく使われており、初心者のうちから慣れておくと、実務でも非常に役立ちます。将来的には、シリアライズ、JSONとの変換、リスト表示など、多くの応用にもつながっていきます。

データクラスを使いこなせるようになると、データ構造の設計が得意になり、アプリやシステムの品質向上にも貢献できます。基本的な使い方から始めて、少しずつ応用パターンにも触れていきましょう。

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

生徒

「データクラスって名前だけ聞いて難しそうと思ってたけど、使ってみるとすごく便利ですね!」

先生

「そうなんです。名前のとおり、データを扱うことに特化したクラスなので、初心者でも扱いやすいんですよ。」

生徒

「copyで別のオブジェクトを作れるのも、データの使い回しに便利ですね。」

先生

「その通り。しかも、equalsやtoStringも自動で用意されるから、書く量も減って効率が上がります。」

生徒

「分解宣言で中身を取り出せるのもスマートで感動しました!」

先生

「便利でしょう?Kotlinらしい機能の一つです。これからいろんな場面で使えるようになると、グッと成長しますよ。」

生徒

「データをまとめて扱うって、こんなに簡単になるんですね。どんどん使ってみます!」

先生

「ぜひ使ってみてください。データクラスに慣れてくると、設計力も自然と上がりますよ。」

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

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

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

Kotlinのデータクラスとは何ですか?普通のクラスとどう違うのですか?

Kotlinのデータクラス(data class)は、主にデータを扱うために使われる特別なクラスです。equalsやtoStringなどの便利なメソッドが自動生成され、データを簡単に管理できるのが普通のクラスとの大きな違いです。
関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!
No.4
Java&Spring記事人気No4
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応