Kotlin'da qanday obyektlar mavjud va ular qanday kompilyatsiya qilinadi?
sobes.tech AI
AIdan javob
Kotlin'da obyektlar singletonlar yaratish uchun ishlatiladi. Ular object kalit so'zi bilan e'lon qilinadi.
object Singleton {
fun doSomething() {
println("Singletondan Salom!")
}
}
Kompilyatsiya qilishda, Kotlin obyekt Singleton Java sinfiga aylantiriladi, u maxfiy statik INSTANCE maydoniga va statik boshlang'ich blokka ega.
// Yaratilgan Java kodining misoli
public final class Singleton {
public static final Singleton INSTANCE; // Yagona nusxa uchun statik maydon
public final void doSomething() { // Ob'ekt metodi
System.out.println("Singletondan Salom!");
}
private Singleton() { // Maxfiy konstruktor, boshqa nusxalarni yaratishni oldini oladi
}
static { // Statik boshlang'ich blok
INSTANCE = new Singleton(); // Yagona nusxani yaratish
}
}
Kotlin'da Singleton.doSomething() obyekt metodini chaqirish, Java'da Singleton.INSTANCE.doSomething() statik metod chaqiruviga aylantiriladi.
Oddiy obyektlardan tashqari, Kotlinda quyidagilar ham mavjud:
-
Hamkasb obyekt (
companion object): Klass ichida statik a'zolarni belgilash uchun ishlatiladi. Ular klass nomi orqali kiriladi. Har bir klassda faqat bitta hamkasb obyekt bo'lishi mumkin.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Java'da statik a'zolar sifatida kompilyatsiya qilinadi.
-
Obyekt ifodasi (
object expression): Java'dagi nomerik sinflarga o'xshash, nomerik obyektlar yaratish uchun ishlatiladi.val listener = object : MyInterface { override fun onClick() { println("Bosildi!") } }Java'da nomerik sinfga kompilyatsiya qilinadi.