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

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(データクラス)は、「データを扱うための特別なクラス」です。データの中身をまとめて、見やすく、安全に管理するためのしくみとして用意されています。

たとえば、「名前」と「年齢」をセットで扱いたいとき、毎回個別に変数を作るのは面倒です。そんなときに役立つのがデータクラスです。

以下のように書くと、名前と年齢をセットでまとめた1つのオブジェクトを作れます:


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

このクラスを使えば、値の比較や文字表示も自動でできるようになります。

通常のクラスではequals()hashCode()toString()などを自分で書く必要がありますが、データクラスではKotlinがそれらを自動で作ってくれるため、コードがとてもすっきりします。

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

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

Kotlinでデータクラスを定義するには、クラスの前にdataというキーワードを付けて書きます。これは「このクラスはデータを扱うためのものですよ」という宣言です。

たとえば、「人の情報(名前と年齢)」をまとめたいときは、次のように定義します:


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

このように書くと、Personクラスはnameageという2つのプロパティを持つデータクラスになります。

ここで使われているvalは「変更できない値(読み取り専用)」を意味しており、インスタンスを作ったあとにその値を変更することはできません。

もしあとで値を変更したい場合は、varを使うこともできますが、基本的にはvalを使っておく方が安全です。

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を基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

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

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

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

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

Kotlinのデータクラス(data class)は、主にデータを扱うために使われる特別なクラスです。equalsやtoStringなどの便利なメソッドが自動生成され、データを簡単に管理できるのが普通のクラスとの大きな違いです。

Kotlinでデータクラスを定義するにはどうすればよいですか?

Kotlinでデータクラスを定義するには、「data class」というキーワードを使い、クラスの中に少なくとも1つ以上のプロパティ(valかvar)を指定して記述します。
関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.8
Java&Spring記事人気No8
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法