picha

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


? 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


? 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?

Jiunge nasi WhatsApp kupata update zetu

Zoezi la Maswali

Nyuma Endelea


Umeionaje Makala hii.. ?

Nzuri            Mbaya            Save
Author: Rajabu image Tarehe: 2025-08-28 Topic: Kotlin Main: ICT File: Download PDF Views 315

Share On:

Share follows: 0 | Unique share links followed: 0
Sponsored links
👉1 Madrasa kiganjani    👉2 Tafasiri ya Riyadh Swalihina    👉3 web hosting    👉4 kitabu cha Simulizi    👉5 Simulizi za Hadithi Audio    👉6 Bongolite - Game zone - Play free game   

Post zinazofanana:

KOTLIN somo la 12: Jinsi ya kupata user input

Jinsi ya kuchukuwa user input kwenye Kotlin kwa ajili ya kuongeza user interaction kwenye program.

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...
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.

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...
KOTLIN somo la 13: Jinsi ya kuandika function na kuweka parameter

Katika somo hili utakwend akujifunza maana ya function, jinsi ya kuandika function na kuweka parameter kwenye function

Soma Zaidi...
KOTLIN somo la 15: ainza za parameter kwenye function

Katika somo hili tutakwenda kuzungumzia kuhusu parameter kwenye Kotlin function. Pia tutakwenda kuona mambo mengine yanayohusu function

Soma Zaidi...
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.

Soma Zaidi...
Kotlin Somo la 27: Polymorphism

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...
KOTLIN somo la 10: Jinsi ya kutumia while loop na do while loop

Katika somo hili utakwend akujifunza kuhusu while loop na do while loop zinavyofanya kazi katika Kotlin.

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...