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.