0Pricing
Kotlin Academy · Lektion

Primärkonstruktor und Property-Parameter

Deklarieren Sie Klassen mit Primärkonstruktoren und direkt eingebetteten Property-Deklarationen.

Primärkonstruktor und Property-Parameter ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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 Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Der primäre Konstruktor

Eine Kotlin-Klasse deklariert ihren primären Konstruktor direkt nach dem Klassennamen in Klammern. Es gibt keinen Methodenkörper, sondern nur eine Parameterliste.

Einfachste Klasse

Der primäre Konstruktor ist ohne Modifizierer hinter dem Klassennamen nicht sichtbar.

class Greeter(val name: String) {
    fun greet() = "Hello, $name!"
}
fun main() {
    println(Greeter("Ada").greet())
}

Parameter als Properties

Stellen Sie einem Konstruktorparameter val oder var voran, um ihn in einem Schritt zu einer Property der Klasse zu machen.

class Person(val name: String, var age: Int)
fun main() {
    val p = Person("Bob", 30)
    println("${p.name} is ${p.age}")
    p.age = 31
    println("Now ${p.age}")
}

Parameter ohne val/var

Konstruktorparameter ohne val/var sind auf den Konstruktor beschränkt. Sie können in init-Blöcken oder Property-Initialisierern verwendet, aber später nicht mehr abgerufen werden.

class Logger(prefix: String) {
    val msg = "$prefix: ready"
}
fun main() {
    val l = Logger("[INFO]")
    println(l.msg)
    // l.prefix // ERROR — not a property
}

Standardwerte für Parameter

Geben Sie Standardwerte für Konstruktorparameter an, um überflüssigen Overload-Code zu vermeiden.

class User(
    val name: String,
    val age: Int = 0,
    val email: String = ""
)
fun main() {
    println(User("Ana").age)               // 0
    println(User("Ben", 25).email)         // ""
    println(User("Cal", 30, "c@x.io").email)
}

Benannte Argumente

Überspringen Sie die Positionsreihenfolge und benennen Sie die Parameter am Aufrufort – besonders nützlich bei Standardwerten.

class HttpClient(
    val baseUrl: String,
    val timeoutMs: Int = 5000,
    val retries: Int = 3
)
fun main() {
    val c = HttpClient(
        baseUrl = "https://api.example.com",
        retries = 5
    )
    println("retries=${c.retries} timeout=${c.timeoutMs}")
}

Sichtbarkeit des Konstruktors

Verwenden Sie private constructor, um die Instanziierung von außen zu verhindern – häufig in Kombination mit Factory-Methoden.

class Singleton private constructor() {
    companion object {
        val instance = Singleton()
    }
}
fun main() {
    val s = Singleton.instance
    println(s)
}

Sekundäre Konstruktoren

Fügen Sie mit dem Schlüsselwort constructor zusätzliche Konstruktoren hinzu. Diese müssen mit this(...) an den primären Konstruktor delegieren.

class Point(val x: Int, val y: Int) {
    constructor(value: Int) : this(value, value)
}
fun main() {
    println("${Point(3).x}, ${Point(3).y}") // 3, 3
}

Konstruktor mit Sichtbarkeit

Sie können für jeden Konstruktor eine eigene Sichtbarkeit festlegen – nützlich für Bibliotheken.

class Lib internal constructor(val key: String) {
    companion object {
        fun create(key: String) = Lib(key)
    }
}
fun main() {
    println(Lib.create("abc").key)
}

Zusammenfassung zum init-Block

Code, der während der Erstellung ausgeführt werden soll, gehört in einen init { }-Block. Mehrere init-Blöcke werden in der Reihenfolge ihres Auftretens im Quelltext ausgeführt.

class Validator(val value: String) {
    init { require(value.isNotBlank()) { "value cannot be blank" } }
}
fun main() {
    println(Validator("ok").value)
    // Validator("") // throws IllegalArgumentException
}

Properties und Logik kombinieren

Property-Deklarationen, sekundäre Konstruktoren und init-Blöcke lassen sich zu einer flexiblen Initialisierungspipeline kombinieren.

class Account(
    val owner: String,
    initialBalance: Double = 0.0
) {
    var balance: Double = initialBalance
        private set
    init {
        require(initialBalance >= 0) { "balance must be non-negative" }
    }
    fun deposit(amount: Double) { balance += amount }
}
fun main() {
    val a = Account("Alice", 100.0)
    a.deposit(50.0)
    println("${a.owner}: ${a.balance}") // Alice: 150.0
}

Kurze Überprüfung

Was bewirkt das Schlüsselwort val, wenn es in einem Parameter des primären Konstruktors verwendet wird?

Zusammenfassung

Der primäre Konstruktor befindet sich im Klassenkopf. Verwenden Sie val/var für Property-Parameter; einfache Parameter sind auf den Konstruktor beschränkt. Fügen Sie Standardwerte hinzu, um Overloads zu reduzieren, und führen Sie Einrichtungslogik in init-Blöcken aus. Sekundäre Konstruktoren delegieren über this(...).

Häufig gestellte Fragen

Ist die Lektion „Primärkonstruktor und Property-Parameter“ kostenlos?

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

Was lerne ich in „Primärkonstruktor und Property-Parameter“?

Deklarieren Sie Klassen mit Primärkonstruktoren und direkt eingebetteten Property-Deklarationen. Du übst Kotlin 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 Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin 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 1 von 4.

Wie lange dauert die Lektion „Primärkonstruktor und Property-Parameter“?

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 Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin 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. Primärkonstruktor und Property-Parameter
  2. init-Blöcke und Initialisierungsreihenfolge
  3. Benutzerdefinierte Getter und Setter mit field
  4. lateinit und verzögerte Initialisierung
← Zurück zu Kotlin Academy