Sobes.tech
Junior

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

sobes.tech AI

Antwoord van AI

In Kotlin kan een klasse een primaire constructor en een of meerdere secundaire constructors hebben.

  1. Primaire constructor: Wordt gedefinieerd in de klasse header. Kan parameters hebben.

    class MijnKlasse(private val eenEigenschap: String) { // Primaire constructor met parameter
        // Klassenlichaam
    }
    
  2. Secundaire constructors: Worden gedeclareerd met het sleutelwoord constructor. Als de klasse een primaire constructor heeft, moet elke secundaire constructor direct of indirect naar deze verwijzen met behulp van this().

    class EenAndereKlasse(private val primaireWaarde: Int) { // Primaire constructor
    
        constructor(eenAndereWaarde: String) : this(eenAndereWaarde.length) { // Secundaire constructor die naar de primaire verwijst
            // Logica van de secundaire constructor
            println("Gemaakt met string: $eenAndereWaarde")
        }
    
        constructor(waarde1: Int, waarde2: Int) : this(waarde1 + waarde2) { // Nog een secundaire constructor
            // Logica
            println("Gemaakt met twee ints: $waarde1, $waarde2")
        }
    }
    

Als er geen primaire constructor is, zijn secundaire constructors niet verplicht om naar andere constructors te verwijzen (maar kunnen dat wel).

class ZonderPrimaireConstructor {

    constructor(waarde: Int) {
        println("Gemaakt met int: $waarde")
    }

    constructor(waarde: String) {
        println("Gemaakt met string: $waarde")
    }
}