Kotlin тилиндеги класстардагы баштапкы түзмөлөр жөнүндө айтып бериңиз.
sobes.tech AI
AIден жооп
Котлинде класстарда негизги жана бир нече экинчи конструкторлор болушу мүмкүн. Инициализаторлор — бул init блоктору, алар алардын жарыялануу тартибинде негизги конструктордон (эгер бар болсо) же экинчи конструктордон кийин ишке ашырылат.
Негизги конструктор
Түздөн-түз класс башталышында жарыяланат. Ал мүчөлөрдүн ылдамдыкта колдонулушу үчүн параметрлерди камтышы мүмкүн.
class User(name: String, age: Int) {
init {
// Бул блок класс объектисин түзүүдө ишке ашырылат
println("User created: $name, $age")
}
}
Экинчи конструкторлор
constructor ачкыч сөзү менен жарыяланат жана ар дайым ошол эле классдагы башка конструкторго делегирлөө керек, же негизгиге (this аркылуу), же башка экинчи конструкторго.
class User {
init {
// Бул блок биринчи болуп ишке ашырылат, эгер негизги конструктор бар болсо
}
constructor(name: String) : this() {
// Экинчи конструктор 1
println("User created with name: $name")
}
constructor(name: String, age: Int) : this(name) {
// Экинчи конструктор 2, биринчи экинчи конструкторду чакырат
println("User created with name and age: $name, $age")
}
}
Ишке ашыруу тартиби
- Негизги конструктордогу код (эгер параметрлери болсо, алар колдонулат)
initблоктору кезек-кезеги менен- Чакырылган экинчи конструктордун коду (чалгандан кийин делегирлөө ишке ашырылат)
Мисал:
class Example {
init {
println("Init block 1")
}
constructor(i: Int) {
println("Secondary constructor $i")
}
init {
println("Init block 2")
}
}
fun main() {
Example(10)
}
Чыгуу:
Init block 1
Init block 2
Secondary constructor 10
Эгер экинчи конструктор чакырылса да, init блоктору дайыма анын алдында ишке ашырылат. Бул объекттин негизги инциализациясы аяктагандан кийин, экинчи конструктордун өзгөчө коду ишке ашырылат дегенди кепилдейт.
Инициализаторлор — бул бардык класс экземплярларын түзүүдө аткарылуучу логиканы ишке ашыруу үчүн маанилүү. Мисалы, кирүү маалыматтарын текшерүү же объекттин абалын орнотуу үчүн.