Sobes.tech
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ść.