Kotlin Getters and Setters (Örnekle)

Bu makalede, bir örnek yardımıyla Kotlin'de alıcı ve ayarlayıcıları kullanmayı öğreneceksiniz.

Alıcılar ve ayarlayıcı hakkında bilgi edinmeden önce Kotlin sınıfını ve nesnelerini kontrol ettiğinizden emin olun.

Programlamada alıcılar mülkün değerini elde etmek için kullanılır. Benzer şekilde, mülkün değerini ayarlamak için ayarlayıcılar kullanılır.

Kotlin'de alıcılar ve ayarlayıcılar isteğe bağlıdır ve bunları programınızda oluşturmazsanız otomatik olarak oluşturulur.

Alıcılar ve ayarlayıcılar nasıl çalışır?

Kotlin'de aşağıdaki kod

 sınıf Kişi (var adı: String = "defaultValue")

eşdeğerdir

 sınıf Kişi (var adı: String = "defaultValue" // getter get () = alan // ayarlayıcı kümesi (değer) (alan = değer))

PersonSınıfın nesnesini başlattığınızda ve name özelliğini başlattığınızda, bu, ayarlayıcılar parametre değerine iletilir ve alanı değer olarak ayarlar.

 val p = Kişi () p.name = "jack"

Şimdi, nesnenin name özelliğine eriştiğinizde, kod nedeniyle alan elde edeceksiniz get() = field.

 println ("$ (s.adı)")

İşte çalışan bir örnek:

 fun main(args: Array) ( val p = Person() p.name = "jack" println("$(p.name)") ) class Person ( var name: String = "defaultValue" get() = field set(value) ( field = value ) )

Programı çalıştırdığınızda, çıktı:

 kriko 

Alıcıların ve ayarlayıcıların varsayılan olarak çalışma şekli budur. Ancak, alıcıları ve ayarlayıcıları kullanarak özelliğin değerini değiştirebilirsiniz (değeri değiştirin).

Örnek: Özelliğin değerini değiştirme

 fun main(args: Array) ( val maria = Girl() maria.actualAge = 15 maria.age = 15 println("Maria: actual age = $(maria.actualAge)") println("Maria: pretended age = $(maria.age)") val angela = Girl() angela.actualAge = 35 angela.age = 35 println("Angela: actual age = $(angela.actualAge)") println("Angela: pretended age = $(angela.age)") ) class Girl ( var age: Int = 0 get() = field set(value) ( field = if (value = 18 && value <= 30) value else value-3 ) var actualAge: Int = 0 )

Programı çalıştırdığınızda, çıktı:

 Maria: gerçek yaş = 15 Maria: iddia edilen yaş = 18 Angela: gerçek yaş = 35 Angela: iddia edilen yaş = 32

Burada, actualAge özelliği beklendiği gibi çalışır.

Bununla birlikte, age özelliğinin değerini değiştirmek için ek bir mantık vardır.

Ilginç makaleler...