Junior
Wie kann man in Kotlin mehrere Konstruktoren in einer Klasse implementieren?
sobes.tech KI
Antwort von AI
Um multiple Konstruktoren in Kotlin werden mit dem primären Konstruktor und bei Bedarf mit einem oder mehreren sekundären Konstruktoren erstellt.
Der primäre Konstruktor wird direkt in der Klassenkopfzeile deklariert:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Klassenkörper
}
Sekundäre Konstruktoren werden mit dem Schlüsselwort constructor deklariert:
class MyClass {
// Primärer Konstruktor (implizit oder explizit)
constructor(param1: String) {
// Logik des sekundären Konstruktors 1
}
constructor(param1: String, param2: Int) {
// Logik des sekundären Konstruktors 2
}
}
Wenn die Klasse einen primären Konstruktor hat, muss jeder sekundäre Konstruktor den Aufruf an den primären Konstruktor delegieren, indem er this() verwendet:
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Logik des sekundären Konstruktors
}
}
Es können auch mehrere sekundäre Konstruktoren existieren, die an den primären Konstruktor oder andere sekundäre Konstruktoren delegieren (unter Beachtung der Delegationshierarchie):
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// Logik des sekundären Konstruktors 1
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// Logik des sekundären Konstruktors 2
}
}
Wichtige Punkte:
- Der Körper des primären Konstruktors wird vor dem Körper der sekundären Konstruktoren ausgeführt.
- Eigenschaften, die in der Kopfzeile des primären Konstruktors deklariert sind, können im Körper der sekundären Konstruktoren zugänglich sein.
- In Kotlin wird empfohlen, den primären Konstruktor zu verwenden und sekundäre Konstruktoren nach Möglichkeit zu vermeiden, indem benannte Argumente oder Fabrikmethoden bevorzugt werden.