Sobes.tech
Junior

Hoe wordt encapsulatie uitgevoerd in Kotlin?

sobes.tech AI

Antwoord van AI

Encapsulatie in Kotlin wordt bereikt door middel van toegangsmutators en eigenschappen.

Toegangsmutators:

  • public: toegankelijk vanaf elke locatie (standaard).
  • internal: toegankelijk binnen dezelfde module.
  • protected: toegankelijk in zijn eigen klasse en in subklassen.
  • private: alleen toegankelijk binnen de klasse waarin het is gedeclareerd.

Eigenschappen worden gebruikt om de toegang tot de gegevens van de klasse te beheren. Ze kunnen een getter en setter hebben, die overschreven kunnen worden om logica toe te voegen bij het lezen of schrijven van de waarde.

class Person {
    // Privé veld, alleen toegankelijk binnen de klasse
    private var _name: String = ""

    // Eigenschap met publieke getter en private setter
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Publieke functie om de naam in te stellen, controleert de invoer
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Naam mag niet leeg zijn")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Gebruik de gecontroleerde methode om te wijzigen
    println(person.name)    // Lees de waarde via de getter
    // person.name = "Bob"   // Fout bij compilatie, setter is privé
}