【Kotlin入門】data classとは?その使い方やメリットを解説


Kotlinでdata classの使い方がよくわからない
data classってなんだろう
data classを使うとどんなメリットがあるんだろう

Kotlinの学習を始めたての方でdata classについて、これは何だと困惑している方はいませんか。

こんにちは!エンジニアのかいです。Kotlinをこれから始めようとしている人、もしくは始めたての人であればdata classというものがでてきたときによく使い方がわからなかったり、メリットがわからなかったりしますよね。

そこで本日はKotlin初心者の方を対象にdata classの意味や使い方、使うメリットなどを丁寧に解説していきます!

この記事はこんな人のために書きました。

  • data classとは何かわからない
  • data classの基本的な使い方が知りたい
  • data classを使うメリットを知りたい

kotlin data classとは

さて、それでは最初にdata classとはどういうものなのかということについて簡単に説明しておきます。

data classとは特に何かしらの処理を行うわけではないがデータだけ持っているクラスを作ることができます。つまり、データだけを持ったクラスが生成できるのです。

data classのメリットとは

データのみを持ったクラスを作ることにどんなメリットがあるか考えてみましょう。まずそもそも、データのみを保持し他クラスを作りたいという場合はコードを書いている上で多々あると思います。

データのみを保持するクラスをよく作るわけですが、そこで使いたいメソッドで大体同じものがあったりします。代表的なものだとtoStringとかですかね。

Kotlinでdata classを使うメリットはそんなよく使うメソッドを自動で生成してくれることなんですね。

つまりどういうことかというと、普通にデータをを保持するクラスを書くと、以下のようになります。

class Score{
    var subject: String? = null
    var score: Int = 0
}

fun main(args: Array<String>) {
    val ins = Score()

    ins.subject = "math"
    ins.score = 80

    println(ins)
}
[email protected]

これをdata classを使って書くと以下のようになります。

data class Score(val subject: String, var score: Int)

fun main(args: Array<String>) {
    val ins = Score("math", 80)

    println(ins)
}
Score(subject=math, score=80)

このようにdata classを使うとメソッドが自動的に生成されていることがわかりますね。

data classの使い方

それでは、先にチラッとあげてしまいましたが、実際の使い方を説目していきます。

とは言っても簡単で、dataという修飾子をclassの前につけてあげるだけでそれらはdata classとして扱われます。

上記のようにからも分かる通り、このように、dataを付加するだけでdata classは実装できますね。

data class Score(val subject: String, var score: Int)

toString

それでは、実際に実装されるメソッドについて一つずつみていきましょう。

toStringについては上記のコードであげたとおり普通のクラスでは、ハッシュ値が表示されていたのがStringで表示されているとこで確認ができますね。

hashCode()

data class Score(val subject: String, var score: Int)

fun main(args: Array<String>) {
    val ins = Score("math", 80)

    println(ins.hashCode())
}
103668296

ハッシュコードを得るのも簡単です。

componentN()

componentNはkotlinでdata classを使う上でも特に便利な機能です。

data class Score(val subject: String, var score: Int)

fun main(args: Array<String>) {
    val ins = Score("math", 80)

    val sub = ins.component1()
    val sco = ins.component2()

    println(sub)
    println(sco)
}
math
80

こんな感じでN番目のcomponentを取り出すことができたり、

data class Score(val subject: String, var score: Int)

fun main(args: Array<String>) {
    val ins = Score("math", 80)
    val (a,b) = ins

    println(a)
    println(b)
}
math
80

こんな感じで値をa, bに代入することも可能です。

まとめ

今回は、kotlinのdata classにおけるメリットや、そこで得られる主要な関数などを紹介してきました。data classはとても便利なものですので、まだ使っていなかったという方はガンガン使いこなせるようになっていきましょう!

それでは!!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説