Chapter 7 - Section 3
fun main(args: Array<String>) {
val stateful = StatefulClass(object : ClickListener {
override fun onClick(event: ClickEvent) {
println("Click at ${event.x}, ${event.y}")
}
})
println("Listener initialized")
stateful.clickMe(5, 18)
stateful.clickMe(45, 57)
}
class ClickEvent(val x: Int, val y: Int)
interface ClickListener {
fun onClick(event: ClickEvent)
}
class StatefulClass(listener: ClickListener) {
private var _clickListener:ClickListener? = listener
fun clickMe(x: Int, y: Int) {
_clickListener?.onClick(ClickEvent(x, y))
}
}