Sobes.tech
Junior

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

sobes.tech AI

Atbilde no AI

Kotlin tiek izmantoti vairāki konstruktori, izmantojot galveno konstruktoru un, ja nepieciešams, vienu vai vairākus sekundāros konstruktorus.

Galvenais konstruktors tiek tieši deklarēts klases virsotnē:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // Klases saturs
}

Sekundārie konstruktori tiek deklarēti ar atslēgvārdu constructor:

class MyClass {
    // Galvenais konstruktors (nepārprotams vai skaidrs)

    constructor(param1: String) {
        // Sekundārā konstruktoru loģika 1
    }

    constructor(param1: String, param2: Int) {
        // Sekundārā konstruktoru loģika 2
    }
}

Ja klasei ir galvenais konstruktors, katrs sekundārais konstruktors ir jādeleģē galvenajam, izmantojot this():

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // Sekundārā konstruktoru loģika
    }
}

Tāpat ir iespējams būt vairākiem sekundārajiem konstruktoriem, kas deleģē galvenajam vai citiem sekundārajiem konstruktoriem (ievērojot deleģēšanas hierarhiju):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // 1. sekundārā konstruktoru loģika
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // 2. sekundārā konstruktoru loģika
    }
}

Svarīgi punkti:

  • Galvenā konstruktoru ķermenis tiek izpildīts pirms sekundāro konstruktoru ķermeņiem.
  • Galvenā konstruktorā deklarētās īpašības ir pieejamas sekundārajos konstruktoros.
  • Kotlin ieteicams izmantot galveno konstruktoru un, ja iespējams, izvairīties no sekundārajiem konstruktoriem, aizstājot tos ar nosaukto argumentu vai fabrika metožu izmantošanu.