0Pricing
Android Academy · Lektion

Konstruktoren und init

Erstellen und initialisieren Sie Objekte.

Konstruktoren und init ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Konstruktor?

Ein Konstruktor ist spezieller Code, der beim Erstellen eines Objekts ausgeführt wird. Er legt die Anfangswerte des Objekts fest.

In Kotlin wird der primäre Konstruktor direkt neben dem Klassennamen geschrieben.

Der primäre Konstruktor

Der primäre Konstruktor steht in Klammern hinter dem Klassennamen. Beim Erstellen des Objekts übergeben Sie Werte.

Hier benötigt Dog beim Erstellen einen Namen.

class Dog(name: String) {
    val dogName = name
}

fun main() {
    val d = Dog("Rex")
    println(d.dogName)
}

Eigenschaften im Konstruktor

Wenn Sie vor einen Konstruktorparameter val oder var schreiben, wird er automatisch in eine Eigenschaft umgewandelt.

Dies ist der gängigste und kompakte Kotlin-Stil.

class Dog(val name: String, var age: Int)

fun main() {
    val d = Dog("Rex", 3)
    println(d.name + " is " + d.age)
}

Standardwerte im Konstruktor

Auch Konstruktorparameter können Standardwerte besitzen. Aufrufer können diese Parameter dann weglassen.

Hier wird für age der Standardwert 0 verwendet, wenn kein Wert angegeben wird.

class Dog(val name: String, var age: Int = 0)

fun main() {
    val d = Dog("Max")
    println(d.age)
}

Der init-Block

Ein init-Block wird als Teil des primären Konstruktors ausgeführt. Verwenden Sie ihn für Initialisierungslogik, die nicht in eine einzelne Eigenschaftszeile passt.

Er kann auf die Konstruktorparameter zugreifen.

class Dog(val name: String) {
    init {
        println("Created dog: " + name)
    }
}

fun main() {
    Dog("Rex")
}

Validierung in init

Eine häufige Verwendung von init ist das Prüfen der Eingaben. Hier verhindern Sie mit require ein negatives Alter.

Wenn die Prüfung fehlschlägt, wird das Objekt nicht erstellt.

class Person(val age: Int) {
    init {
        require(age >= 0) { "Age cannot be negative" }
    }
}

fun main() {
    val p = Person(25)
    println(p.age)
}

Ausführungsreihenfolge

Eigenschaftsinitialisierer und init-Blöcke werden in der Klasse in der Reihenfolge ihres Auftretens von oben nach unten ausgeführt.

Das ist wichtig, wenn eine Zeile von einem weiter oben festgelegten Wert abhängt.

class Demo {
    val a = 1
    init { println("a is " + a) }
    val b = a + 1
    init { println("b is " + b) }
}

fun main() {
    Demo()
}

Berechnete Eigenschaften

Sie können innerhalb des Klassenrumpfs eine Eigenschaft aus Konstruktorwerten berechnen.

Hier wird area aus width und height abgeleitet.

class Rect(val width: Int, val height: Int) {
    val area = width * height
}

fun main() {
    println(Rect(3, 4).area)
}

Sekundäre Konstruktoren

Eine Klasse kann mit dem Schlüsselwort constructor auch sekundäre Konstruktoren besitzen. Diese müssen mit this(...) an den primären Konstruktor delegieren.

Sie werden seltener verwendet, da Standardwerte normalerweise ausreichen.

class Dog(val name: String) {
    constructor() : this("Unknown")
}

fun main() {
    println(Dog().name)
}

Das neue Objekt verwenden

Sobald der Konstruktor und init ausgeführt wurden, ist das Objekt einsatzbereit. Sie können sofort auf seine Eigenschaften zugreifen und seine Methoden aufrufen.

Hier richtet der Konstruktor ein Guthaben ein, und eine Methode zieht davon einen Betrag ab.

class Account(var balance: Int) {
    fun spend(amount: Int) {
        balance = balance - amount
    }
}

fun main() {
    val acc = Account(100)
    acc.spend(30)
    println(acc.balance)
}

Konstruktoren schaffen die Grundlage

Konstruktoren und init-Blöcke sorgen dafür, dass jedes Objekt in einem gültigen Zustand startet.

  • Primärer Konstruktor: Werte deklarieren und entgegennehmen.
  • init: Initialisierung und Validierung ausführen.

So verhindern Sie unvollständig erstellte Objekte in Ihrer App.

Kurzer Test

Testen Sie Ihr Verständnis von Konstruktoren und init.

Zusammenfassung

Sie haben den primären Konstruktor kennengelernt, in ihm Eigenschaften mit val/var zu deklarieren und Standardwerte festzulegen.

Der init-Block übernimmt Initialisierung und Validierung und wird zusammen mit den Eigenschaftsinitialisierern von oben nach unten ausgeführt. Als Nächstes lernen Sie Datenklassen kennen, die Ihnen diese Standardimplementierungen automatisch erzeugen.

Häufig gestellte Fragen

Ist die Lektion „Konstruktoren und init“ kostenlos?

Ja — der vollständige Text von „Konstruktoren und init“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Konstruktoren und init“?

Erstellen und initialisieren Sie Objekte. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Konstruktoren und init“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Funktionen deklarieren
  2. Klassen und Properties
  3. Konstruktoren und init
  4. Datenklassen
← Zurück zu Android Academy