Sobes.tech
Junior

Kā īstenot vairākus konstruktorus vienā klasē Kotlin?

sobes.tech AI

Atbilde no AI

Kotlinā klasei var būt viens primārais konstruktors un viens vai vairāki sekundārie konstruktori.

  1. Primārais konstruktors: Definēts klases virsrakstā. Tam var būt parametri.

    class ManaKlase(private val kādaĪpašība: String) { // Primārais konstruktors ar parametru
        // Klases ķermenis
    }
    
  2. Sekundārie konstruktori: Deklarēti ar atslēgvārdu constructor. Ja klasei ir primārais konstruktors, katrs sekundārais konstruktors tam tieši vai netieši jādeleģē, izmantojot this().

    class CitaKlase(private val primārāVērtība: Int) { // Primārais konstruktors
    
        constructor citaVērtība: String) : this(citaVērtība.length) { // Sekundārais, kas deleģē uz primāro
            // Sekundārā konstruktoru loģika
            println("Izveidots ar virkni: $citaVērtība")
        }
    
        constructor(vērtība1: Int, vērtība2: Int) : this(vērtība1 + vērtība2) { // Cits sekundārais
            // Loģika
            println("Izveidots ar diviem int: $vērtība1, $vērtība2")
        }
    }
    

Ja nav primārā konstruktora, sekundārie konstruktori nav obligāti deleģēt uz citām konstruktoru (bet var).

class BezPrimārā {

    constructor(vērtība: Int) {
        println("Izveidots ar int: $vērtība")
    }

    constructor(vērtība: String) {
        println("Izveidots ar virkni: $vērtība")
    }
}