Ce obiecte există în Kotlin și cum sunt compilate?
sobes.tech AI
Răspuns de la AI
Obiectele în Kotlin sunt utilizate pentru a crea singleton-uri. Sunt declarate cu cuvântul cheie object.
object Singleton {
fun doSomething() {
println("Salut din singleton!")
}
}
La compilare, obiectul Kotlin Singleton este transformat într-o clasă Java Singleton cu un câmp static privat INSTANCE și un bloc static de inițializare.
// Exemplu de cod Java generat
public final class Singleton {
public static final Singleton INSTANCE; // Câmp static pentru singura instanță
public final void doSomething() { // Metoda obiectului
System.out.println("Salut din singleton!");
}
private Singleton() { // Constructor privat pentru a preveni crearea altor instanțe
}
static { // Bloc static de inițializare
INSTANCE = new Singleton(); // Crearea singurei instanțe
}
}
Când se apelează metoda obiectului Singleton.doSomething() în Kotlin, compilatorul generează un apel la metoda statică Singleton.INSTANCE.doSomething() în Java.
Pe lângă obiectele obișnuite, în Kotlin există:
-
Obiect însoțitor (
companion object): Este folosit pentru a defini membri statici în interiorul unei clase. Accesul se face prin numele clasei. Fiecare clasă poate avea cel mult un obiect însoțitor.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Se compilează în membri statici ai clasei în Java.
-
Expresie de obiect (
object expression): Este folosită pentru a crea obiecte anonime (similar cu clasele anonime în Java).val listener = object : MyInterface { override fun onClick() { println("Apăsat!") } }Se compilează într-o clasă anonimă în Java.