Sobes.tech
Junior

Kuidas rakendada Kotlinis ühes klassis mitut konstruktorit?

sobes.tech AI

Vastus AI-lt

Kotlin'is kasutatakse mitmeid konstruktorid, kasutades põhikonstructors ja vajadusel ühte või mitut sekundaarset konstruktorit.

Põhikonstruktor deklareeritakse otse klassi päises:

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

Sekundaarseid konstruktorid deklareeritakse võtmesõna constructor abil:

class MyClass {
    // Põhikonstruktor (kaudne või selge)

    constructor(param1: String) {
        // Sekundaarse konstruktoru loogika 1
    }

    constructor(param1: String, param2: Int) {
        // Sekundaarse konstruktoru loogika 2
    }
}

Kui klassil on põhikonstruktor, peab iga sekundaarne konstruktor suunama põhikonstruktorile kasutades this():

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // Sekundaarse konstruktoru loogika
    }
}

Samuti võib olla mitu sekundaarset konstruktorit, mis suunavad põhikonstruktorile või teistele sekundaarsetele konstruktoritele (järjepidevuse säilitamiseks):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // 1. sekundaarse konstruktoru loogika
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // 2. sekundaarse konstruktoru loogika
    }
}

Oluline punkt:

  • Põhikonstruktoru keha täidetakse enne sekundaarsete konstruktorite kehasid.
  • Põhikonstruktoris deklareeritud omadused on kättesaadavad sekundaarsetes konstruktorites.
  • Kotlin soovitab kasutada põhikonstruktorit ning võimaluse korral vältida sekundaarsete konstruktorite kasutamist, asendades need nimetatud argumentide või tehase meetoditega.