s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Fachkonzept - OOP

Objektorientierte Programmierung (OOP)

Nachdem wir ein objektorientiertes Modell erstellt haben, können wir die Klassen, die wir darin definiert haben, in Kotlin implementieren. Wir gehen wieder von dem Modell eines Roboters aus, das in folgendem Klassendiagramm dargestellt ist:

Klassendiagramm eines Roboters

Aus dem Klassendiagramm können wir fast vollständig ein Grundgerüst für die Implementierung der Klasse Roboter ableiten. Was uns fehlt ist nur die Information, ob die Attribute mit val oder var deklariert werden sollen, und welche Werte die Attribute initial haben sollen. Außerdem ist die genaue Implementierung der Methoden nicht aus dem Klassendiagramm ersichtlich. Damit die Klasse compiliert werden kann, müssen wir bei Methoden mit einem Rückgabetyp einen Dummy-Wert zurückgeben.

class Roboter(
    val name: String
) {
    var ladezustand: Int = 100

    fun laufen(entfernung: Float) {
        // tu was getan werden muss, damit der Roboter läuft
    }

    fun drehen(winkel: Int, imUhrzeigersinn: Boolean) {
        // tu was getan werden muss, damit der Roboter dreht
    }

    fun istVorHindernis(): Boolean {
        // tu was getan werden muss, um ein Hindernis zu erkennen
        // gib hier als Dummy-Wert einfach false zurück
        return false
    }

    fun ausschalten() {
        // tu was getan werden muss, damit der Roboter sich ausschaltet
    }
}

In allgemeiner Form könnte man die Implementierung einer Klasse also folgendermaßen zusammenfassen:

class Klasse(
    var attribut1: Datentyp, // Attribute, die im Konstruktor 
    var attribut2: Datentyp  // angegeben werden müssen
) {
    var attribut3: Datentyp = initialerWert // weitere Attribute

    fun methode(parameter1: Datentyp, parameter2: Datentyp): Rückgabetyp {
        // Implementierung der Methode
        return rueckgabeWert // falls die Methode einen Rückgabewert hat
    }
}

Wenn der Konstruktor der Klasse keine Parameter besitzt, kann man die runden Klammern weglassen:

class Klasse {
    // Attribute und Methoden ...
}

Bei Attributen, die nicht über die Parameter des Konstruktors angegeben werden, müssen wir einen Anfangswert angeben, damit die Klasse compiliert werden kann. Der Compiler erkennt dabei automatisch den Datentyp des Attributs, weshalb wir diesen nicht explizit angeben müssen. Konkret könnte das so aussehen:

class Tier {
    var energie = 5
    // statt 
    // var energie: Int = 5
}

Suche

v
100.123.2.3 Fachkonzept - OOP
Kopieren durch Anklicken

Rückmeldung geben