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.
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.
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 val au var.
Mfano:
data class Mwanafunzi(val jina: String, val umri: Int)
Data classes huja na hizi function muhimu automatically:
toString() ? kuonyesha data kwa maandishi.
equals() ? kulinganisha vitu viwili.
hashCode() ? kutumika kwenye structures kama HashMap.
copy() ? kutengeneza object mpya kwa kunakili data.
componentN() ? inaruhusu destructuring declaration.
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.
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
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.
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.
Haziwezi kuwa abstract, open, sealed, au inner.
Properties kuu lazima ziwe kwenye primary constructor.
Ikiwa data class ina function zako za equals, hashCode, au toString, zile za auto-generated hazitatumika.
Kuokoa muda (hakuna boilerplate code nyingi).
Kulinganisha data kwa urahisi.
Kutengeneza object mpya kirahisi kupitia copy().
Kusoma code inakuwa rahisi na safi.
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:
Katika somo hili tutakwenda kuzungumzia kuhusu parameter kwenye Kotlin function. Pia tutakwenda kuona mambo mengine yanayohusu function
Soma Zaidi...Katika somo hili utajifunza kuhusu historia ya Kotlin pamoja na kazi za kotlin. Pia utakwenda kujifunza kuhusu uhusiano wake na java.
Soma Zaidi...Katika somo hili tutajifunza kuhusu method za String zinazotumika kwenye Kotlin.
Soma Zaidi...Katika somo hili utakwend akujifunza kuhusu while loop na do while loop zinavyofanya kazi katika Kotlin.
Soma Zaidi...Katika somo hili utakwend akujifunza maana ya function, jinsi ya kuandika function na kuweka parameter kwenye function
Soma Zaidi...Katika somo hili tutajifunza kuhusu method na properties za Kotlin zinazofanya kazi kwenye namba.
Soma Zaidi...Somo hili linaeleza msingi wa database, kwa nini tunazitumia, aina za database, na utangulizi wa MySQL. Pia tutaona jinsi Kotlin inaweza kuunganishwa na MySQL kwa ajili ya kutekeleza CRUD operations (Create, Read, Update, Delete).
Soma Zaidi...Katika somo hili utakwenda kujifunza kuhusu break na continue kwenye Kotlin loop za for loop na while loop.
Soma Zaidi...Katika somo hili utakwenda kujifunza kuhusu when case na jinsi inavyofanya kazi kwenye Kotlin.
Soma Zaidi...Katika somo hili tutakwenda kujifunza kuhusu set data type pamoja na method ambazo hufanya kazi kwenye set.
Soma Zaidi...