Sobes.tech
Junior

Kotlin'de özellikler ve ayrıca get ve set metodleri hakkında ne anlatabilirsin?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de özellikler, alan ve ona karşılık gelen getter ve setter kombinasyonudur.

Özellik tanımı:

class MyClass {
    var mutableProperty: String = "default"
    val immutableProperty: Int = 10
}

Burada, mutableProperty varsayılan getter ve setter ile değiştirilebilir bir özelliktir. immutableProperty ise sadece varsayılan getter ile değiştirilemez bir özelliktir.

Açıkça getter ve setter tanımı:

class MyClass {
    var customProperty: String = ""
        get() = field.toUpperCase() // Kullanıcı tanımlı getter
        set(value) {
            field = value.toLowerCase() // Kullanıcı tanımlı setter
        }

    val computedProperty: Int
        get() = (1..10).random() // Hesaplanan özellik, alanı yok
}
  • field - getter ve setter içinde özellik alanına referans. Sadece değiştirilebilir özellikler (var) için kullanılır.
  • Getter ve setterlar, erişim veya özellik değiştirme sırasında ek mantık eklemek için özelleştirilebilir.
  • Hesaplanan özellikler (computedProperty) kendi alanına sahip değildir ve her erişimde değeri hesaplanır.

Ana noktalar:

  • Kotlin'de, her alan için açıkça getter ve setter oluşturmak gerekmez; otomatik olarak oluşturulurlar.
  • Özellikler nokta notasyonu (instance.propertyName) ile erişilir.
  • Açıkça tanımlanmış getter ve setter, erişim veya değiştirme sırasında mantık eklemeye olanak tanır.
  • val özelliklerin getter'ları her zaman aynı türde değer döndürmelidir.
  • var özelliklerin setter'ları aynı türde parametre alır.

Kotlin özellikleri ile Java'daki alanlar + metodların karşılaştırması:

Kotlin Özelliği Java Alan + Metodlar Açıklama
var myProperty: Type private Type myProperty; + public Type getMyProperty() + public void setMyProperty(Type value) Değiştirilebilir özellik, otomatik getter ve setter ile.
val myProperty: Type private Type myProperty; + public Type getMyProperty() Değiştirilemez özellik, sadece otomatik getter ile.
Özel getter/setter Özel mantık yazımı Erişim veya değiştirme sırasında kullanıcı tanımlı mantık eklenir.
Hesaplanan özellik Değer döndüren açık metod Özelliğin değeri her erişimde hesaplanır.