Kotlin Somo la 31: Objects na Companion Objects
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.
Utangulizi
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.
? 1. Object Declaration (Singletons)
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.
? 2. Object Expressions (Anonymous Objects)
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.
? 3. Companion Objects
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.
? 4. Companion Objects with Factory Pattern
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.
? 5. Companion Objects na Constants
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
}
? 6. Ulinganisho wa Object na Companion Object
| 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() |
✅ 7. Faida za Kutumia Objects na Companion Objects
-
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.
? Hitimisho
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.
Umeionaje Makala hii.. ?
Share On:
👉1 web hosting 👉2 Simulizi za Hadithi Audio 👉3 Kitau cha Fiqh 👉4 Tafasiri ya Riyadh Swalihina 👉5 Sira ya Mtume Muhammad (s.a.w) 👉6 Dua za Mitume na Manabii
Post zinazofanana:
Kotlin somo la 23: Utofauti wa package na library
Katika somo hili utakwenda kujifunza tofauti wa library na package
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 29: Encapsulation
Somo hili linafafanua dhana ya Encapsulation katika OOP, matumizi yake ndani ya Kotlin, pamoja na modifiers mbalimbali (private, protected, internal, public). Pia tutajifunza kwa mifano jinsi encapsulation inavyosaidia kulinda data na kudhibiti ufikivu.
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...KOTLIN somo la 16:baadhi ya method na properies zinazofanya kazi kwenye string
Katika somo hili tutajifunza kuhusu method za String zinazotumika kwenye Kotlin.
Soma Zaidi...Kotlin Somo la 26: Inheritance (Urithi)
Katika somo hili utakwend akujifunza jinsi ambavyo class moja inaweza kuriti method na properties kutoka kwenye class nyingine.
Soma Zaidi...