Property Delegation

Run Settings
LanguageKotlin
Language Version
Run Command
import kotlin.reflect.KProperty fun main(args : Array<String>){ val animal = Animal() animal.name = "okee" println("Nama Hewan: ${animal.name}") val person = Person() person.name = "Habib" println("Nama Orang: ${person.name}") val hero = Hero() hero.name = "GatotKaca" println("Nama Pahlawan: ${hero.name}") } class DelegateName{ private var value: String = "Default" operator fun getValue(classRef: Any?, property: KProperty<*>): String{ println("Fungsi ini sama sepertu getter untuk properti ${property.name} pada $classRef") return value } operator fun setValue(classRef: Any?, property: KProperty<*>, newValue: String){ println("Fungsi ini sama seperti setter untuk property ${property.name} pada class $classRef") println("Nilai ${property.name} dari : $value akan berubah menjadi $newValue") value = newValue } } class Animal{ var name: String by DelegateName() } class Person{ var name: String by DelegateName() } class Hero{ var name: String by DelegateName() }
Editor Settings
Theme
Key bindings
Full width
Lines