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.