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

  1. Birincil konstruktor: Sinfning sarlavhasida aniqlanadi. Parametrlar olishi mumkin.

    class MeningSinfim(private val birorXususiyat: String) { // Birincil konstruktor parametr bilan
        // Sinfning tanasi
    }
    
  2. Ikincil konstruktorlar: constructor kalit so'zi bilan e'lon qilinadi. Agar sinfda birincil konstruktor bo'lsa, har bir ikincil konstruktor to'g'ridan-to'g'ri yoki bilvosita unga this() 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")
    }
}