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.
Sawa, tuendelee! Hapa kuna Somo la 29: Encapsulation katika Kotlin, likiandikwa kwa mtindo wa kitaaluma na wenye mifano mingi.
? Kotlin Somo la 29: Encapsulation
Utangulizi
Moja ya nguzo kuu za Object-Oriented Programming (OOP) ni Encapsulation.
Encapsulation ni kufunga data na tabia zake ndani ya class, kisha kudhibiti ufikivu wake kutoka nje ya class.
Mfano halisi: Fikiria benki. Mteja ana account yake, lakini hawezi kuingilia jinsi benki inavyohifadhi au kushughulikia data za account. Ana interface ndogo tu ya kuingiza na kutoa pesa. Huu ndio mfano bora wa encapsulation.
? 1. Maana ya Encapsulation
-
Ni kufunga data (properties) na mifumo ya kudhibiti (methods) pamoja.
-
Inazuia ufikivu wa moja kwa moja kwa data muhimu, na badala yake hutoa njia maalum (getter na setter).
-
Inalinda data dhidi ya matumizi mabaya.
? 2. Access Modifiers katika Kotlin
Kotlin ina modifiers ambazo zinasaidia kufanikisha encapsulation.
| Modifier | Maelezo |
|---|---|
public |
Default. Inapatikana kila mahali. |
private |
Inapatikana ndani ya class au file pekee. |
protected |
Inapatikana ndani ya class na subclasses zake. |
internal |
Inapatikana ndani ya module moja tu. |
? 3. Mfano wa Encapsulation
? Mfano wa kutumia private property na getters/setters:
class AkauntiBenk(private var salio: Double) {
fun wekaPesa(kiasi: Double) {
if (kiasi > 0) {
salio += kiasi
println("Umeweka $kiasi. Salio jipya: $salio")
} else {
println("Kiasi lazima kiwe chanya!")
}
}
fun toaPesa(kiasi: Double) {
if (kiasi > 0 && kiasi <= salio) {
salio -= kiasi
println("Umetoa $kiasi. Salio jipya: $salio")
} else {
println("Muamala umekataliwa. Salio halitoshi!")
}
}
fun angaliaSalio() = println("Salio lako ni: $salio")
}
fun main() {
val account = AkauntiBenk(1000.0)
account.angaliaSalio()
account.wekaPesa(500.0)
account.toaPesa(300.0)
// account.salio = -200.0 ❌ hairuhusiwi moja kwa moja
}
➡️ Hapa salio ni private ili kulinda data. Mtumiaji hawezi kulibadilisha moja kwa moja, lazima apitie methods maalum.
? 4. Kutumia protected na internal
open class Mfanyakazi(protected val jina: String) {
fun onyeshaJina() = println("Mimi ni $jina")
}
class Meneja(jina: String) : Mfanyakazi(jina) {
fun pangaKazi() = println("Meneja $jina anapanga kazi")
}
internal class Idara(val id: Int)
➡️ protected inaruhusu subclass kutumia jina.
➡️ internal inamaanisha Idara inapatikana ndani ya module moja tu.
? 5. Getters na Setters kwa Properties
Kotlin inaruhusu kutumia custom getters/setters:
class Mwanafunzi {
var jina: String = "Haijulikani"
get() = field.uppercase()
set(value) {
if (value.isNotBlank()) field = value
}
}
fun main() {
val s = Mwanafunzi()
s.jina = "Aisha"
println(s.jina) // AISHA
}
➡️ Getter hubadilisha jina kuwa uppercase.
➡️ Setter inakataza jina tupu.
✅ 6. Faida za Encapsulation
-
? Usalama wa data (hakuna mtu anayeweza kuharibu moja kwa moja).
-
? Urahisi wa kubadilisha utekelezaji bila kuathiri code ya nje.
-
? Code safi na rahisi kuelewa.
-
? Ufungaji wa data na tabia zake pamoja huongeza modularity.
? Hitimisho
Encapsulation ni nguzo muhimu ya OOP inayowezesha usalama wa data, modularity na urahisi wa kudumisha code. Kwa kutumia modifiers, pamoja na getters/setters, Kotlin inatoa njia rahisi ya kufanikisha encapsulation bila mbwembwe nyingi.asses?
Umeionaje Makala hii.. ?
Share On:
👉1 Sira ya Mtume Muhammad (s.a.w) 👉2 Kitabu cha Afya 👉3 Bongolite - Game zone - Play free game 👉4 ai web app 👉5 Madrasa kiganjani 👉6 kitabu cha Simulizi
Post zinazofanana:
KOTLIN somo la 1: Historia ya kotlin na kazi zake
Katika somo hili utajifunza kuhusu historia ya Kotlin pamoja na kazi za kotlin. Pia utakwenda kujifunza kuhusu uhusiano wake na java.
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 4: Aina za Data kwenye Kotlin
Katika somo hili utakwenda kujifunza kuhusu aina za data zinazotumika kwenye Kotlin.
Soma Zaidi...Kotlin somo la 24: Dhana ya Module katika kotlin
Katika somo hili utakwenda kujifunz akuhusu dhana ya module. Hata ivyo tutakwenda kuisoma zaidi kwenye android App
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...Kotlin Somo la 28: Abstraction na Interfaces
Somo hili linaelezea dhana ya abstraction na interfaces katika Kotlin — namna zinavyosaidia kuficha undani wa utekelezaji na kuweka miongozo ya kazi. Tutafahamu tofauti kati ya abstract class na interface, na tutaandika mifano halisi ya kila moja.
Soma Zaidi...