Pada artikel ini, Anda akan belajar menggunakan getter dan setter di Kotlin dengan bantuan sebuah contoh.
Sebelum Anda mempelajari tentang getter dan setter, pastikan untuk memeriksa class dan objek Kotlin.
Dalam pemrograman, getter digunakan untuk mendapatkan nilai properti. Demikian pula, penyetel digunakan untuk menyetel nilai properti.
Di Kotlin, getter dan setter bersifat opsional dan dibuat secara otomatis jika Anda tidak membuatnya dalam program Anda.
Bagaimana getter dan setter bekerja?
Kode berikut di Kotlin
class Person (var name: String = "defaultValue")
setara dengan
class Person (var name: String = "defaultValue" // getter get () = field // setter set (value) (field = value))
Saat Anda membuat instance objek Person
kelas dan menginisialisasi properti name, itu diteruskan ke nilai parameter penyetel dan setel bidang ke nilai.
val p = Orang () p.name = "jack"
Sekarang, ketika Anda mengakses properti nama objek, Anda akan mendapatkan field karena kodenya get() = field
.
println ("$ (p.name)")
Inilah contoh yang berfungsi:
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 ) )
Saat Anda menjalankan program, hasilnya adalah:
mendongkrak
Ini adalah cara kerja pengambil dan penyetel secara default. Namun, Anda dapat mengubah nilai properti (mengubah nilai) menggunakan getter dan setter.
Contoh: Mengubah nilai properti
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 )
Saat Anda menjalankan program, hasilnya adalah:
Maria: usia sebenarnya = 15 Maria: usia pura-pura = 18 Angela: usia sebenarnya = 35 Angela: usia pura-pura = 32
Di sini, properti actualAge bekerja seperti yang diharapkan.
Namun, ada logika tambahan penyetel untuk mengubah nilai properti usia.