Junior — Middle
Czy można zdefiniować klasę w Kotlinie z wieloma konstruktorami?
sobes.tech AI
Odpowiedź od AI
Tak, w Kotlinie można zdefiniować klasę z wieloma konstruktorami. Do tego służy jeden główny (primary) konstruktor i jeden lub więcej drugorzędnych (secondary) konstruktorów.
Główny konstruktor jest deklarowany w nagłówku klasy, a drugorzędne — wewnątrz ciała klasy słowem kluczowym constructor.
Przykład:
class User(val name: String) {
var age: Int = 0
// Konstruktor drugorzędny
constructor(name: String, age: Int) : this(name) {
this.age = age
}
}
Tutaj główny konstruktor przyjmuje name, a drugorzędny — name i age. Konstruktor drugorzędny wywołuje główny za pomocą : this(name) i inicjalizuje dodatkową właściwość.