Sobes.tech
Junior — Middle

Kotlin dilinde sınıf tanımının dışında özellikler tanımlama imkanı var mı?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de özellikler genellikle sınıf tanımı içinde ilan edilir. Ancak, sınıf dışında bir özellik eklemek gerekirse, genişletmeler (extension properties) kullanılabilir.

Genişletmeler, mevcut sınıflara yeni özellikler veya fonksiyonlar eklemeye olanak tanır, kaynak kodlarını değiştirmeden.

Sınıf dışında bir genişletme özelliği örneği:

class User(val name: String)

// Sınıf dışında genişletme özelliği
val User.firstChar: Char
    get() = this.name.first()

fun main() {
    val user = User("Anna")
    println(user.firstChar) // 'A' yazdırır
}

Önemli: Genişletme özellikleri durum (backing field) tutamaz, bu nedenle hesaplanmış olmalıdırlar (sadece getter veya getter ve setter ile, ancak alan olmadan).

Bu şekilde, sınıf tanımının dışında özellikler genişletmeler aracılığıyla ilan edilebilir, ancak bazı sınırlamalarla.