Somo hili linaeleza matumizi ya objects na companion objects katika Kotlin. Tutajifunza tofauti kati ya object na class ya kawaida, faida za singleton pattern, na jinsi ya kutumia companion kama mbadala wa static members katika Java.
Katika lugha ya Java, tunatumia static kuunda method au property inayohusiana na class nzima badala ya object.
Lakini Kotlin haina neno kuu static, badala yake inatumia:
Object Declaration → hutengeneza singleton.
Companion Object → hutoa static-like members ndani ya class.
Object declaration hutumika kuunda class moja tu yenye instance moja.
Mfano:
object Database {
val url = "jdbc:mysql://localhost:3306/mydb"
fun connect() {
println("Umeunganishwa na database kwa URL: $url")
}
}
fun main() {
Database.connect()
}
β‘οΈ Database hapa ni singleton – kuna instance moja tu wakati wote wa program.
Hizi hutumika kutengeneza object ya muda (anonymous) bila kuunda class.
Mfano:
fun main() {
val listener = object {
val id = 1
fun onClick() = println("Button imebonyezwa!")
}
listener.onClick()
}
β‘οΈ Hii ni sawa na kuunda class ndogo haraka kwa matumizi ya muda mfupi.
Companion Object ni object maalum ndani ya class ambayo hufanya kazi kama static members.
class User(val name: String) {
companion object {
fun createDefault(): User {
return User("Mgeni")
}
}
}
fun main() {
val u1 = User("Ali")
val u2 = User.createDefault()
println(u1.name) // Ali
println(u2.name) // Mgeni
}
β‘οΈ createDefault() inaweza kupatikana moja kwa moja kupitia User.createDefault() bila kuunda object mpya.
Companion objects mara nyingi hutumika kutengeneza factory methods.
class Account(val id: Int, val balance: Double) {
companion object Factory {
fun create(id: Int): Account {
return Account(id, 0.0)
}
}
}
fun main() {
val acc = Account.create(101)
println("Akaunti mpya: id=${acc.id}, salio=${acc.balance}")
}
β‘οΈ Hapa tumetumia companion object kwa kutengeneza akaunti mpya kwa njia rahisi.
Badala ya kuunda static final kama Java, tunatumia const val ndani ya companion object.
class Config {
companion object {
const val VERSION = "1.0.0"
}
}
fun main() {
println(Config.VERSION) // 1.0.0
}
| Kipengele | Object Declaration | Companion Object |
|---|---|---|
| Instance | Singleton ya class nzima | Static-like members ndani ya class |
| Matumizi | Global utilities (mfano: Database, Logger) | Factory methods, constants, helpers |
| Upatikanaji | Moja kwa moja: Database.connect() |
Kupitia class: User.createDefault() |
Hutoa mbadala wa static (Java) kwa njia safi zaidi.
Huondoa matatizo ya multiple instances (kwa singleton).
Inarahisisha kutengeneza factory methods.
Inafanya code iwe safi na rahisi kuelewa.
Kotlin inatoa njia mbili kuu za kushughulika na members ambazo hazihusiani moja kwa moja na object:
Object Declaration kwa ajili ya singleton pattern.
Companion Object kwa ajili ya static-like methods na constants.
Hii hufanya code iwe safi, rahisi, na salama dhidi ya makosa ya multiple instances.
Jiunge nasi WhatsApp kupata update zetuUmeionaje Makala hii.. ?
Somo hili linaeleza dhana ya polymorphism katika OOP ya Kotlinβuwezo wa kutumia method au object moja kufanya kazi tofauti kulingana na muktadha wake. Tutajifunza aina kuu za polymorphism, jinsi ya kuandika code inayotumia override, open, super, pamoja na mifano hai.
Soma Zaidi...Katika somo hili utakwenda kujifunz akuhusu dhana ya module. Hata ivyo tutakwenda kuisoma zaidi kwenye android App
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...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 utakwend akujifunza maana ya function, jinsi ya kuandika function na kuweka parameter kwenye function
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 tutajifunza method zinazofanya kazi kwenye list data type kwenye Kotlin.
Soma Zaidi...Katika somo hili unakwenda kujifunza kuhusu sheria na kanuni za undishi wa code za Kotlin yaani syntax za kotlin.
Soma Zaidi...Katika somo hili utajifunza kuhusu Kotlin library. Pia tutakwenda kutengeneza library yetu wenyewe kwa ajili ya kufanya mazoezi zaidi.
Soma Zaidi...Katika somo hili utakwend akujifunza kuhusu nadharia ya package, kazi zake, aina zake na jinsi zinavyotumika
Soma Zaidi...