Junior
Jak implementovat více konstruktorů v jedné třídě v Kotlinu?
sobes.tech AI
Odpověď od AI
V Kotlinu může třída mít jeden primární konstruktor a jeden nebo více sekundárních konstruktorů.
-
Primární konstruktor: Je definován v hlavičce třídy. Může mít parametry.
class MojeTřída(private val nějakáVlastnost: String) { // Primární konstruktor s parametrem // Tělo třídy } -
Sekundární konstruktor: Jsou deklarovány klíčovým slovem
constructor. Pokud třída má primární konstruktor, každý sekundární konstruktor musí přímo nebo nepřímo delegovat na něj pomocíthis().class JináTřída(private val primárníHodnota: Int) { // Primární konstruktor constructor jináHodnota: String) : this(jináHodnota.length) { // Sekundární konstruktor delegující na primární // Logika sekundárního konstruktoru println("Vytvořeno s řetězcem: $jináHodnota") } constructor(hodnota1: Int, hodnota2: Int) : this(hodnota1 + hodnota2) { // Další sekundární konstruktor // Logika println("Vytvořeno se dvěma int: $hodnota1, $hodnota2") } }
Pokud není primární konstruktor, sekundární konstruktor nemusí delegovat na jiné konstruktory třídy (ale může).
class BezPrimárníhoKonstruktora {
constructor(hodnota: Int) {
println("Vytvořeno s int: $hodnota")
}
constructor(hodnota: String) {
println("Vytvořeno s řetězcem: $hodnota")
}
}