Sobes.tech
Junior

Kaip vykdoma inkapsuliacija Kotlin?

sobes.tech AI

Atsakymas iš AI

Kotlin'e inkapsuliacija pasiekiama naudojant prieigos modifikatorius ir savybes.

Prieigos modifikatoriai:

  • public: prieinama iš bet kur (numatyta).
  • internal: prieinama to paties modulio ribose.
  • protected: prieinama savo klasei ir jos pogrupiams.
  • private: prieinama tik toje klasėje, kurioje deklaruota.

Savybės naudojamos valdyti prieigą prie klasės duomenų. Jos gali turėti getter ir setter, kuriuos galima perrašyti, kad pridėti logiką skaitant ar rašant reikšmę.

class Person {
    // Privatus laukas, prieinamas tik klasės viduje
    private var _name: String = ""

    // Savybė su viešu getter ir privačiu setter
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Vieša funkcija nustatyti vardą, kontroliuoja įvestį
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Vardas negali būti tuščias")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Naudojame kontroliuojamą metodą keisti
    println(person.name)    // Skaityti reikšmę per getter
    // person.name = "Bob"   // Klaidų kompiliuojant, setter yra privačios
}