Назад к вопросам
Junior
87
questionbank
Как в Kotlin можно реализовать несколько конструкторов в одном классе?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Kotlin класс может иметь один первичный конструктор и один или несколько вторичных конструкторов.
-
Первичный конструктор: Определяется в заголовке класса. Может иметь параметры.
class MyClass(private val someProperty: String) { // Первичный конструктор с параметром // Тело класса } -
Вторичные конструкторы: Объявляются с ключевым словом
constructor. Если класс имеет первичный конструктор, каждый вторичный конструктор должен прямо или косвенно делегировать ему вызов с использованием ключевого словаthis().class AnotherClass(private val primaryValue: Int) { // Первичный конструктор constructor(anotherValue: String) : this(anotherValue.length) { // Вторичный конструктор, делегирующий первичному // Логика вторичного конструктора println("Created with string: $anotherValue") } constructor(value1: Int, value2: Int) : this(value1 + value2) { // Еще один вторичный конструктор // Логика println("Created with two ints: $value1, $value2") } }
При отсутствии первичного конструктора, вторичные конструкторы не обязаны делегировать другим конструкторам того же класса (но могут).
class ClassWithoutPrimary {
constructor(value: Int) {
println("Created with int: $value")
}
constructor(value: String) {
println("Created with string: $value")
}
}