Junior
Kako implementirati više konstruktora u jednoj klasi u Kotlinu?
sobes.tech АИ
Одговор од АИ
U Kotlinu, klasa može imati jedan primarni konstruktor i jedan ili više sekundarnih konstruktora.
-
Primarni konstruktor: Definisan je u zaglavlju klase. Može imati parametre.
class MojaKlasa(private val nekaSvojstva: String) { // Primarni konstruktor sa parametrima // Telo klase } -
Sekundarni konstruktori: Deklarišu se ključnom reči
constructor. Ako klasa ima primarni konstruktor, svaki sekundarni konstruktor mora direktno ili indirektno da delegira na njega koristećithis().class DrugaKlasa(private val primarnaVrednost: Int) { // Primarni konstruktor constructor drugaVrednost: String) : this(drugaVrednost.length) { // Sekundarni konstruktor koji delegira na primarni // Logika sekundarnog konstruktora println("Kreirano sa stringom: $drugaVrednost") } constructor(vrednost1: Int, vrednost2: Int) : this(vrednost1 + vrednost2) { // Još jedan sekundarni // Logika println("Kreirano sa dva int-a: $vrednost1, $vrednost2") } }
Ako nema primarni konstruktor, sekundarni konstruktori nisu obavezni da delegiraju na druge konstruktore iste klase (ali mogu).
class BezPrimarnog {
constructor(vrednost: Int) {
println("Kreirano sa int: $vrednost")
}
constructor(vrednost: String) {
println("Kreirano sa stringom: $vrednost")
}
}