Sobes.tech
Junior

Kako se realizuje enkapsulacija u Kotlinu?

sobes.tech АИ

Одговор од АИ

Enkapsulacija u Kotlinu se postiže pomoću modifikatora pristupa i svojstava.

Modifikatori pristupa:

  • public: dostupno odakle god (po defaultu).
  • internal: dostupno unutar istog modula.
  • protected: dostupno u svojoj klasi i u njenim podklasama.
  • private: dostupno samo unutar klase u kojoj je deklarisano.

Svojstva se koriste za upravljanje pristupom podacima klase. Mogu imati getter i setter, koje možemo prepisati da dodamo logiku pri čitanju ili pisanju vrednosti.

class Person {
    // Privatno polje, dostupno samo unutar klase
    private var _name: String = ""

    // Svojstvo sa javnim getterom i privatnim setterom
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Javno funkcija za postavljanje imena, kontroliše unos
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Ime ne može biti prazno")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Koristimo kontrolisanu metodu za promenu
    println(person.name)    // Čitanje vrednosti putem gettera
    // person.name = "Bob"   // Greška pri kompilaciji, setter je privatni
}