Kotlin Somo la 30: Data Classes
Somo hili linaeleza maana ya data classes katika Kotlin, kwa nini zipo, jinsi ya kuzitumia, sifa zake, pamoja na mifano ya vitendo. Pia tutajifunza tofauti kati ya class ya kawaida na data class.
Utangulizi
Katika programu nyingi tunahitaji kuhifadhi data (mfano: jina la mwanafunzi, idadi ya bidhaa, n.k.).
Kotlin inatoa data class ambayo ni class maalum kwa lengo la kushughulikia data na hutupunguzia kuandika code nyingi (boilerplate code).
Badala ya kuandika equals(), hashCode(), toString() au copy() kwa mikono, Kotlin hufanya yote hayo moja kwa moja tunapotumia data class.
? 1. Sifa Kuu za Data Classes
Ili class iwe data class, lazima:
-
Itangazwe kwa kutumia neno kuu
data. -
Iwe na angalau property moja katika constructor kuu (
primary constructor). -
Property kuu ziwe
valauvar.
Mfano:
data class Mwanafunzi(val jina: String, val umri: Int)
? 2. Faida za Data Classes
Data classes huja na hizi function muhimu automatically:
-
toString()➝ kuonyesha data kwa maandishi. -
equals()➝ kulinganisha vitu viwili. -
hashCode()➝ kutumika kwenye structures kamaHashMap. -
copy()➝ kutengeneza object mpya kwa kunakili data. -
componentN()➝ inaruhusu destructuring declaration.
? 3. Mfano wa Msingi
data class Bidhaa(val jina: String, val bei: Double)
fun main() {
val b1 = Bidhaa("Kitabu", 12.5)
val b2 = Bidhaa("Kitabu", 12.5)
println(b1) // Bidhaa(jina=Kitabu, bei=12.5)
println(b1 == b2) // true (kwa sababu equals imeundwa ki-automatic)
val b3 = b1.copy(bei = 15.0)
println(b3) // Bidhaa(jina=Kitabu, bei=15.0)
}
➡️ Hapa tunaona jinsi toString, equals, na copy zinavyotumika bila sisi kuziandika.
? 4. Destructuring Declaration
Data class hutoa componentN() functions kwa properties zake.
data class Point(val x: Int, val y: Int)
fun main() {
val p = Point(10, 20)
val (a, b) = p // destructuring
println("x = $a, y = $b")
}
Matokeo:
x = 10, y = 20
? 5. Tofauti na Class ya Kawaida
class Mtu(val jina: String, val umri: Int)
data class MtuData(val jina: String, val umri: Int)
fun main() {
val c1 = Mtu("Ali", 20)
val c2 = Mtu("Ali", 20)
println(c1 == c2) // false (linganisho la reference)
val d1 = MtuData("Ali", 20)
val d2 = MtuData("Ali", 20)
println(d1 == d2) // true (linganisho la content)
}
➡️ Class ya kawaida inalinganisha reference tu,
➡️ Data class inalinganisha maudhui ya properties.
? 6. Data Class na copy()
data class Akaunti(val id: Int, var salio: Double)
fun main() {
val a1 = Akaunti(101, 2000.0)
val a2 = a1.copy(salio = 5000.0)
println(a1) // Akaunti(id=101, salio=2000.0)
println(a2) // Akaunti(id=101, salio=5000.0)
}
➡️ copy() huruhusu kubadilisha property moja tu bila kuandika upya object nzima.
? 7. Vikwazo vya Data Classes
-
Haziwezi kuwa
abstract,open,sealed, auinner. -
Properties kuu lazima ziwe kwenye primary constructor.
-
Ikiwa data class ina function zako za
equals,hashCode, autoString, zile za auto-generated hazitatumika.
✅ 8. Faida Kuu kwa Developer
-
Kuokoa muda (hakuna boilerplate code nyingi).
-
Kulinganisha data kwa urahisi.
-
Kutengeneza object mpya kirahisi kupitia
copy(). -
Kusoma code inakuwa rahisi na safi.
? Hitimisho
Data classes ni njia rahisi na yenye nguvu ya kushughulikia data katika Kotlin. Zinaondoa kero ya kuandika equals, hashCode, toString, na copy. Hivyo ni bora sana katika mifumo ya modeling data, kama vile mifumo ya database, API responses, au data transfer objects (DTOs).
Umeionaje Makala hii.. ?
Share On:
👉1 Kitau cha Fiqh 👉2 ai web app 👉3 Simulizi za Hadithi Audio 👉4 Sira ya Mtume Muhammad (s.a.w) 👉5 Bongolite - Game zone - Play free game 👉6 Dua za Mitume na Manabii
Post zinazofanana:
KOTLIN somo la 21: Jinsi ta kutengeneza library
Katika somo hili utajifunza kuhusu Kotlin library. Pia tutakwenda kutengeneza library yetu wenyewe kwa ajili ya kufanya mazoezi zaidi.
Soma Zaidi...KOTLIN somo la 7: Jinsi ya kutumia If na ifelse kwenye Kotlin
Katika somo hili utakwenda kujifunza kuhusu namna ambavyo program inaweza kufanya maamuzi kulingana na mashart fulani.ama namna ambavyo program inaweza ku run code zaii ya mara moja kulingana na mashart. Hapa tutazingumzia flow of control statement
Soma Zaidi...KOTLIN somo la 17: method na properties za namba
Katika somo hili tutajifunza kuhusu method na properties za Kotlin zinazofanya kazi kwenye namba.
Soma Zaidi...Kotlin somo la 25: Nadharia ya Object Oriented Programming
Katika somo hili utakwenda kujifunza maana na features za object oriented Programming
Soma Zaidi...KOTLIN somo la 14: Aina za function kwenye Kotlin
Katika somo hili tutakwenda kuingia ndani zaidi kwenye somo la function. Hapa tutakwenda kuona aina za function.
Soma Zaidi...HOTLIN somo la 9: Jinsi ya kutumia for loop
Katika somo hli utakwend akujifunza kuhusu loop kwenye kOTLIN. Loop zimegawanyika katika makundi mnne ambayo ni for loop, while loop, for in loop na do while loop.
Soma Zaidi...