Junior
Kako implementirati više konstruktora u jednoj klasi u Kotlinu?
sobes.tech АИ
Одговор од АИ
Za kreiranje više konstruktora u Kotlinu koristi se primarni konstruktor i, po potrebi, jedan ili više sekundarnih konstruktora.
Primarni konstruktor se direktno deklarise u zaglavlju klase:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Telo klase
}
Sekundarni konstruktori se deklarisu pomoću ključne reči constructor:
class MyClass {
// Primarni konstruktor (implicitni ili eksplicitni)
constructor(param1: String) {
// Logika sekundarnog konstruktora 1
}
constructor(param1: String, param2: Int) {
// Logika sekundarnog konstruktora 2
}
}
Ako klasa ima primarni konstruktor, svaki sekundarni mora delegirati poziv ka primarnom konstruktoru koristeći this():
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Logika sekundarnog konstruktora
}
}
Takođe, može postojati više sekundarnih konstruktora koji delegiraju na primarni ili na druge sekundarne konstruktore (poštujući hijerarhiju delegacije):
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// Logika konstruktora 1
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// Logika konstruktora 2
}
}
Važne tačke:
- Telo primarnog konstruktora se izvršava pre tela sekundarnih.
- Svojstva deklarisana u zaglavlju primarnog konstruktora mogu biti dostupna u telu sekundarnih.
- U Kotlinu se preporučuje korišćenje primarnog konstruktora i, ako je moguće, izbegavanje sekundarnih, preferirajući imenovane argumente ili fabričke metode.