Sobes.tech
Junior

Hoe implementeer je meerdere constructeurs in één klasse in Kotlin?

sobes.tech AI

Antwoord van AI

Om meerdere constructors in Kotlin te maken, wordt gebruik gemaakt van de primaire constructor en, indien nodig, een of meerdere secundaire constructors.

De primaire constructor wordt direct in de klasseheader gedeclareerd:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // Body van de klasse
}

Secundaire constructors worden gedeclareerd met het sleutelwoord constructor:

class MyClass {
    // Primaire constructor (impliciet of expliciet)

    constructor(param1: String) {
        // Logica van secundaire constructor 1
    }

    constructor(param1: String, param2: Int) {
        // Logica van secundaire constructor 2
    }
}

Als de klasse een primaire constructor heeft, moet elke secundaire constructor de aanroep naar de primaire constructor delegeren, met behulp van het sleutelwoord this():

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // Logica van secundaire constructor
    }
}

Het is ook mogelijk om meerdere secundaire constructors te hebben die delegeren aan de primaire constructor of andere secundaire constructors (volgens de delegatiehiërarchie):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // Logica van secundaire constructor 1
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // Logica van secundaire constructor 2
    }
}

Belangrijke punten:

  • De body van de primaire constructor wordt uitgevoerd voordat de body van secundaire constructors.
  • Eigenschappen die in de header van de primaire constructor zijn gedeclareerd, kunnen toegankelijk zijn in de body van secundaire constructors.
  • In Kotlin wordt aanbevolen om de primaire constructor te gebruiken en, indien mogelijk, secundaire constructors te vermijden, door genummerde argumenten of fabrieksmethoden te gebruiken.