Junior
Kotlinda bir sinfda bir nechta konstruktorlarni qanday amalga oshirish mumkin?
sobes.tech AI
AIdan javob
Kotlin'da, sinfda bir birincil konstruktor va bir yoki bir nechta ikincil konstruktorlar bo'lishi mumkin.
-
Birincil konstruktor: Sinfning sarlavhasida aniqlanadi. Parametrlar olishi mumkin.
class MeningSinfim(private val birorXususiyat: String) { // Birincil konstruktor parametr bilan // Sinfning tanasi } -
Ikincil konstruktorlar:
constructorkalit so'zi bilan e'lon qilinadi. Agar sinfda birincil konstruktor bo'lsa, har bir ikincil konstruktor to'g'ridan-to'g'ri yoki bilvosita ungathis()kalit so'zi yordamida delegatsiya qilishi kerak.class BoshqaSinf(private val asosiyQiymat: Int) { // Birincil konstruktor constructor boshqaQiymat: String) : this(boshqaQiymat.length) { // Ikincil konstruktor, birinchiga delegatsiya qilmoqda // Ikincil konstruktorning logikasi println("String bilan yaratilgan: $boshqaQiymat") } constructor(qiymat1: Int, qiymat2: Int) : this(qiymat1 + qiymat2) { // Yana bir ikincil konstruktor // Logika println("Ikki int bilan yaratilgan: $qiymat1, $qiymat2") } }
Agar birincil konstruktor bo'lmasa, ikincil konstruktorlar boshqa konstruktorlarga delegatsiya qilish majburiy emas (lekin qilishlari mumkin).
class BirincilKonstruktorYoq {
constructor(qiymat: Int) {
println("Int bilan yaratilgan: $qiymat")
}
constructor(qiymat: String) {
println("String bilan yaratilgan: $qiymat")
}
}