Ի՞նչ օբյեկտներ կան Kotlin-ում և ինչպես են դրանք կոմպիլացվում:
sobes.tech AI
Պատասխան AI-ից
Kotlin- ում օբյեկտները օգտագործվում են սինգլթոններ ստեղծելու համար: Դրանք հայտարարում են object բանալի բառով:
object Singleton {
fun doSomething() {
println("Բարև սինգլթոնից!")
}
}
Կոմպիլյացիայի ժամանակ, Kotlin-ի Singleton օբյեկտը փոխարկվում է Java Singleton դասի, որի մասնավոր ստատիկ INSTANCE դաշտն ու ստատիկ ինիցիալիզացիոն բլոկը կա:
// Գեներացված Java կոդի օրինակ
public final class Singleton {
public static final Singleton INSTANCE; // Միայն օրինակ համար ստատիկ դաշտ
public final void doSomething() { // Օբյեկտի մեթոդ
System.out.println("Բարև սինգլթոնից!");
}
private Singleton() { // Պրիվատ կոնստրուկտոր
}
static { // Ստատիկ ինիցիալիզացիոն բլոկ
INSTANCE = new Singleton(); // Միայն օրինակ ստեղծում
}
}
Երբ Singleton.doSomething() մեթոդը կանչվում է Kotlin- ում, կոմպիլյատորը գեներացնում է Singleton.INSTANCE.doSomething() ստատիկ մեթոդի կանչ:
Բացի սովորական օբյեկտներից, Kotlin- ում կան նաև՝
-
Ընկերական օբյեկտ (
companion object): Օգտագործվում է ստատիկ անդամներ սահմանելու համար դասի ներսում: Դասի անունով հասանելի է: Ամեն դաս կարող է ունենալ առավելագույնը մեկ ընկերական օբյեկտ:class MyClass { companion object { const val MY_CONSTANT = "մեկ արժեք" fun create(): MyClass { return MyClass() } } }Կոմպիլյացվում է որպես դասի ստատիկ անդամներ Java- ում:
-
Օբյեկտ արտահայտություն (
object expression): Օգտագործվում է անանուն օբյեկտներ ստեղծելու համար (նման է անանուն դասերին Java- ում):val listener = object : MyInterface { override fun onClick() { println("Կտտացվեց!") } }Կոմպիլյացվում է որպես անանուն դաս Java- ում: