Sobes.tech
Junior

Kotlin'de companion object hakkında bilgi ver.

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de companion object, sınıfın tüm örnekleriyle ortak olan (özellikler ve fonksiyonlar) sınıf üyelerini tanımlamak ve bunlara sınıf örneği oluşturmadan erişmek için kullanılır. Temelde Java'daki statik üyelerin karşılığıdır, ancak sınıf içinde bir nesne olarak uygulanmıştır.

Ana özellikler:

  • Tek örnek: Bir sınıf içinde yalnızca bir companion object olabilir.
  • Başlatma: Sınıf ilk yüklendiğinde başlatılır.
  • Özel üyelere erişim: Dış sınıfın özel üyelerine erişim sağlar.
  • İsimlendirme: Varsayılan olarak Companion adını alır, ancak açıkça isimlendirilebilir.
  • Arayüzleri uygulama: Arayüzleri uygulayabilir.

Kullanım örneği:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Sabit

        fun createInstance(): MyClass { // Fabrika metodu
            return MyClass()
        }
    }

    fun doSomething() {
        println("Bir şeyler yapılıyor...")
    }
}

fun main() {
    println(MyClass.TAG) // companion object üyesine erişim
    val instance = MyClass.createInstance() // Fabrika metodunun kullanımı
    instance.doSomething()
}

Avantajlar:

  • Daha semantik: İlgili "statik" üyeleri tek bir yerde gruplandırmaya olanak tanır.
  • Esneklik: Arayüzleri uygulayabilir, bu da tasarım desenleri için faydalıdır.
  • Özel üyelere erişim: Fabrika metodları ve singleton'ların sınıf içinde uygulanmasını kolaylaştırır.