Junior
Kotlin'da companion object haqida gapiring.
sobes.tech AI
AIdan javob
companion object Kotlin'da, bu sinf uchun umumiy bo'lgan (xususiyatlar va funksiyalar) sinf a'zolarini belgilash uchun ishlatiladi va ularga sinf nusxasini yaratmasdan kirish imkonini beradi. Bu Java'dagi statik a'zolarning analogidir, ammo sinf ichida obyekt sifatida amalga oshirilgan.
Asosiy xususiyatlar:
- Yagona nusxa: Sinf ichida faqat bitta
companion objectbo'lishi mumkin. - Initsializatsiya: Sinf birinchi yuklanganda initsializatsiya qilinadi.
- Xususiy a'zolarga kirish: Tashqi sinfning xususiy a'zolariga kirish imkoniyatiga ega.
- Nomlash: Standart ravishda
Companionnomiga ega, lekin aniq nom bilan belgilanishi mumkin. - Interfeyslarni amalga oshirish: Interfeyslarni amalga oshirishi mumkin.
Foydalanish misoli:
class MyClass {
companion object {
const val TAG = "MyClass" // Doimiy
fun createInstance(): MyClass { // Fabrika metodi
return MyClass()
}
}
fun doSomething() {
println("Bir narsa qilish...")
}
}
fun main() {
println(MyClass.TAG) // companion object a'zosiga kirish
val instance = MyClass.createInstance() // Fabrika metodidan foydalanish
instance.doSomething()
}
Afzalliklar:
- Ko'proq semantik: Bog'liq "statik" a'zolarni bitta joyda guruhlash imkonini beradi.
- Moslashuvchanlik: Interfeyslarni amalga oshirishi mumkin, bu dizayn shablonlari uchun foydalidir.
- Xususiy a'zolarga kirish: Fabrika metodlari va singletonlarni sinf ichida amalga oshirishni osonlashtiradi.