Sobes.tech
Junior

Wie wird Kapselung in Kotlin durchgeführt?

sobes.tech KI

Antwort von AI

Kotlin-Kapselung wird durch Zugriffssmodifikatoren und Eigenschaften erreicht.

Zugriffsmodule:

  • public: von überall zugänglich (Standard).
  • internal: innerhalb desselben Moduls zugänglich.
  • protected: in der Klasse selbst und in Unterklassen zugänglich.
  • private: nur innerhalb der Klasse, in der sie deklariert sind.

Eigenschaften werden verwendet, um den Zugriff auf die Daten der Klasse zu steuern. Sie können einen Getter und einen Setter haben, die überschrieben werden können, um Logik beim Lesen oder Schreiben des Wertes hinzuzufügen.

class Person {
    // Privates Feld, nur innerhalb der Klasse zugänglich
    private var _name: String = ""

    // Eigenschaft mit öffentlichem Getter und privatem Setter
    var name: String
        get() = _name
        private set(value) {
            _name = value
        }

    // Öffentliche Funktion zum Setzen des Namens, kontrolliert die Eingabe
    fun setName(newName: String) {
        if (newName.isNotBlank()) {
            name = newName
        } else {
            println("Name darf nicht leer sein")
        }
    }
}

fun main() {
    val person = Person()
    person.setName("Alice") // Verwendung der kontrollierten Methode zur Änderung
    println(person.name)    // Wert über den Getter lesen
    // person.name = "Bob"   // Kompilierungsfehler, Setter ist privat
}