Sobes.tech
Junior

Wie kann man in Kotlin mehrere Konstruktoren in einer Klasse implementieren?

sobes.tech KI

Antwort von AI

In Kotlin kann eine Klasse einen primären Konstruktor und einen oder mehrere sekundäre Konstruktoren haben.

  1. Primärer Konstruktor: Wird in der Klassendeklaration definiert. Kann Parameter haben.

    class MeineKlasse(private val eineEigenschaft: String) { // Primärer Konstruktor mit Parameter
        // Klassenkörper
    }
    
  2. Sekundäre Konstruktoren: Werden mit dem Schlüsselwort constructor deklariert. Wenn die Klasse einen primären Konstruktor hat, muss jeder sekundäre Konstruktor direkt oder indirekt an ihn delegieren, indem er this() verwendet.

    class AndereKlasse(private val primärerWert: Int) { // Primärer Konstruktor
    
        constructor(einAndererWert: String) : this(einAndererWert.length) { // Sekundärer Konstruktor, der an den primären delegiert
            // Logik des sekundären Konstruktors
            println("Erstellt mit String: $einAndererWert")
        }
    
        constructor(wert1: Int, wert2: Int) : this(wert1 + wert2) { // Ein weiterer sekundärer Konstruktor
            // Logik
            println("Erstellt mit zwei ints: $wert1, $wert2")
        }
    }
    

Ohne primären Konstruktor sind sekundäre Konstruktoren nicht verpflichtet, an andere Konstruktoren der Klasse zu delegieren (können es aber).

class KlasseOhnePrimärenKonstruktor {

    constructor(wert: Int) {
        println("Erstellt mit int: $wert")
    }

    constructor(wert: String) {
        println("Erstellt mit String: $wert")
    }
}