Sobes.tech
Junior

Kaip įgyvendinti kelis konstruktorius vienoje klasėje Kotlin?

sobes.tech AI

Atsakymas iš AI

Kotlin'e klasė gali turėti vieną pirminį konstruktorių ir vieną ar daugiau antrinių konstruktorių.

  1. Pirminis konstruktorius: Apibrėžiamas klasės antraštėje. Gali turėti parametrus.

    class ManoKlasė(private val kažkoksYpatumas: String) { // Pirminis konstruktorius su parametru
        // Klasės turinys
    }
    
  2. Antriniai konstruktoriai: Deklaruojami su raktiniu žodžiu constructor. Jei klasė turi pirminį konstruktorių, kiekvienas antrinis turi tiesiogiai ar netiesiogiai jį deleguoti naudojant this().

    class KitasKlasė(private val pirminėReikšmė: Int) { // Pirminis konstruktorius
    
        constructor kitasReikšmė: String) : this(kitasReikšmė.length) { // Antrinis, deleguojantis į pirminį
            // Antrinio konstruktoriaus logika
            println("Sukurtas su eilute: $kitasReikšmė")
        }
    
        constructor(reikšmė1: Int, reikšmė2: Int) : this(reikšmė1 + reikšmė2) { // Kitas antrinis
            // Logika
            println("Sukurtas su dviem int: $reikšmė1, $reikšmė2")
        }
    }
    

Jei nėra pirminio konstruktoriaus, antriniai konstruktoriai nėra privalomi deleguoti į kitus konstruktorius (bet gali).

class BePirminio {

    constructor(reikšmė: Int) {
        println("Sukurtas su int: $reikšmė")
    }

    constructor(reikšmė: String) {
        println("Sukurtas su eilute: $reikšmė")
    }
}