Android Academy · Pelajaran

Kelas Data

Kelas ringkas untuk menyimpan data.

Pelajaran 4 daripada 413 langkah

Kelas Data ialah pelajaran Android Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Android Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Android Academy merangkumi sejumlah 4 pelajaran.

Apakah Itu Kelas Data?

Kelas data ialah kelas yang direka untuk menyimpan data. Kotlin menjana kaedah yang berguna untuknya secara automatik.

Anda mengisytiharkannya dengan menulis data sebelum class.

Mengisytiharkan Kelas Data

Kelas data memerlukan sekurang-kurangnya satu parameter dalam pembina utamanya, dan setiap parameter mesti ditandai dengan val atau var.

Di sini ialah User yang menyimpan nama dan umur.

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

fun main() {
    val u = User("Ada", 30)
    println(u.name)
}

toString yang Mudah Dibaca

Kelas biasa mencetak alamat yang sukar difahami. Kelas data menjana toString yang jelas dan memaparkan setiap sifat.

Hal ini menjadikan penyahpepijatan lebih mudah.

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

fun main() {
    val u = User("Ada", 30)
    println(u)
}

Membandingkan dengan equals

Kelas data membuat perbandingan berdasarkan kandungan, bukan identiti. Dua objek dengan nilai sifat yang sama adalah sama menggunakan ==.

Kelas biasa akan menganggap kedua-duanya berbeza.

data class Point(val x: Int, val y: Int)

fun main() {
    val a = Point(1, 2)
    val b = Point(1, 2)
    println(a == b)
}

Fungsi copy

Fungsi copy yang dijana mencipta objek baharu berdasarkan objek sedia ada. Anda boleh mengubah sifat yang anda nyatakan sahaja.

Objek asal kekal tidak berubah.

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

fun main() {
    val u = User("Ada", 30)
    val older = u.copy(age = 31)
    println(older)
}

Penyahstrukturan

Kelas data menyokong penyahstrukturan: membongkar sifat kepada pemboleh ubah berasingan dalam satu baris.

Urutannya mengikut pembina.

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

fun main() {
    val (name, age) = User("Sam", 25)
    println(name + " " + age)
}

Nilai Lalai Juga Berfungsi

Seperti mana-mana pembina, parameter kelas data boleh mempunyai nilai lalai.

Dengan ini, pemanggil boleh mengabaikan medan yang tidak diperlukan.

data class User(val name: String, val active: Boolean = true)

fun main() {
    val u = User("Lee")
    println(u)
}

hashCode untuk Koleksi

Kelas data juga menjana hashCode, jadi kelas data berfungsi dengan betul sebagai kunci dalam Set atau Map.

Objek yang sama menghasilkan cincangan yang sama, jadi pendua dapat dikesan.

data class Point(val x: Int, val y: Int)

fun main() {
    val set = setOf(Point(1, 1), Point(1, 1))
    println(set.size)
}

Bila Hendak Menggunakan Kelas Data

Pilih kelas data apabila objek kebanyakannya membawa nilai dan bukannya tingkah laku yang kompleks.

  • Respons API
  • Keadaan UI dalam Android
  • Rekod pangkalan data

Untuk objek yang kaya dengan logik, kelas biasa lebih sesuai.

Kelas Data Menjimatkan Kerja

Satu kata kunci data memberikan anda toString, equals, hashCode, copy dan sokongan penyahstrukturan.

Ini mengurangkan banyak kod berulang yang tidak perlu anda tulis atau selenggara secara manual.

Kelas Data berbanding Kelas Biasa

Kelas biasa membuat perbandingan berdasarkan identiti dan mencetak rujukan memori. Kelas data membuat perbandingan berdasarkan kandungan dan mencetak nilainya.

Kata kunci data mengaktifkan semua tingkah laku yang dijana ini.

class Plain(val x: Int)
data class Smart(val x: Int)

fun main() {
    println(Plain(1) == Plain(1))
    println(Smart(1) == Smart(1))
}

Semakan Pantas

Uji pemahaman anda tentang kelas data.

Ulang Kaji

Anda telah mempelajari bahawa kelas data menjana toString, equals, hashCode, copy dan sokongan penyahstrukturan secara automatik.

Kelas ini sesuai untuk objek yang membawa nilai seperti keadaan UI dan model API. Kini anda telah merangkumi fungsi, kelas, pembina dan kelas data dalam Kotlin.

Percuma untuk bermula

Pelajari Kotlin dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
36
Pelajaran
152

Soalan Lazim

Adakah pelajaran “Kelas Data” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Android Academy, termasuk “Kelas Data”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Android Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Kelas Data”?

Kelas ringkas untuk menyimpan data. Anda berlatih Android Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Android Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Android Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Kelas Data” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Android Academy ini?

Ya. Setiap pelajaran Android Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mengisytiharkan Fungsi
  2. Kelas dan Sifat
  3. Pembina dan init
  4. Kelas Data
← Kembali ke Android Academy