Kotlin'de hangi nesneler var ve nasıl derlenirler?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de nesneler, singletonlar oluşturmak için kullanılır. object anahtar kelimesiyle tanımlanırlar.
object Singleton {
fun doSomething() {
println("Singleton'dan Merhaba!")
}
}
Derleme sırasında, Kotlin Singleton nesnesi, Java'da özel statik alan INSTANCE ve statik başlatma bloğu olan bir Java sınıfına dönüştürülür.
// Oluşan Java kodu örneği
public final class Singleton {
public static final Singleton INSTANCE; // Tek örnek için statik alan
public final void doSomething() { // Nesne metodu
System.out.println("Singleton'dan Merhaba!");
}
private Singleton() { // Dışarıdan yeni örnek oluşturulmasını engelleyen özel yapıcı
}
static { // Statik başlatma bloğu
INSTANCE = new Singleton(); // Tek örneğin oluşturulması
}
}
Kotlin'de Singleton.doSomething() nesne metodunu çağırmak, Java'da Singleton.INSTANCE.doSomething() statik metod çağrısıyla derlenir.
Normal nesnelerin yanı sıra, Kotlin'de şunlar da vardır:
-
Sınıf içi nesne (
companion object): Bir sınıf içinde statik üyeler tanımlamak için kullanılır. Sınıf adıyla erişilir. Her sınıfın en fazla bir tane sınıf içi nesnesi olabilir.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Java'da statik sınıf üyeleri olarak derlenir.
-
Nesne ifadesi (
object expression): Java'daki anonim sınıflara benzer şekilde, anonim nesneler oluşturmak için kullanılır.val listener = object : MyInterface { override fun onClick() { println("Tıklandı!") } }Java'da anonim sınıfa derlenir.