Junior
Jak zaimplementować wiele konstruktorów w jednej klasie w Kotlinie?
sobes.tech AI
Odpowiedź od AI
Aby utworzyć wiele konstruktorów w Kotlinie, używa się konstruktora głównego i, w razie potrzeby, jednego lub więcej konstruktorów pomocniczych.
Konstruktor główny jest deklarowany bezpośrednio w nagłówku klasy:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Ciało klasy
}
Konstruktory pomocnicze są deklarowane za pomocą słowa kluczowego constructor:
class MyClass {
// Konstruktor główny (domyślny lub jawny)
constructor(param1: String) {
// Logika konstruktora pomocniczego 1
}
constructor(param1: String, param2: Int) {
// Logika konstruktora pomocniczego 2
}
}
Jeśli klasa ma konstruktor główny, każdy konstruktor pomocniczy musi delegować wywołanie do konstruktora głównego, używając słowa kluczowego this():
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Logika konstruktora pomocniczego
}
}
Można również mieć kilka konstruktorów pomocniczych delegujących do konstruktora głównego lub innych konstruktorów pomocniczych (zgodnie z hierarchią delegacji):
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// Logika konstruktora pomocniczego 1
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// Logika konstruktora pomocniczego 2
}
}
Ważne punkty:
- Ciało konstruktora głównego jest wykonywane przed ciałem konstruktorów pomocniczych.
- Właściwości zadeklarowane w nagłówku konstruktora głównego mogą być dostępne w ciele konstruktorów pomocniczych.
- W Kotlinie zaleca się używanie konstruktora głównego i, o ile to możliwe, unikanie konstruktorów pomocniczych, preferując argumenty nazwane lub metody fabryczne.