Properties and Encapsulation
Custom Getter
Compute a property when it is read.
getter
A custom getter runs code whenever the property is read.
Custom Getter
CustomGetter.kt
Replay: real traced execution (multi-file project)
class Box(val width: Int, val height: Int) {
val area: Int
get() {
return width * height
}
}
fun main() {
val width = 4
val box = Box(width, 3)
val area = box.area
println("width=$width")
println("area=$area")
}
class Box(val width: Int, val height: Int) {
val area: Int
get() {
return width * height
}
}
fun main() {
val width = 2
val box = Box(width, 3)
val area = box.area
println("width=$width")
println("area=$area")
}
class Box(val width: Int, val height: Int) {
val area: Int
get() {
return width * height
}
}
fun main() {
val width = 7
val box = Box(width, 3)
val area = box.area
println("width=$width")
println("area=$area")
}
width ← 4, area ← 12
8fun main() {9 val width→ 4 = 4 //@width=2, 710 val box = Box(width4, 3)11 val area→ 12 = box.area121213 println("width=$width4")14 println("area=$area12")15}outputwidth=4 area=12
width ← 2, area ← 6
8fun main() {9 val width→ 2 = 210 val box = Box(width2, 3)11 val area→ 6 = box.area61213 println("width=$width2")14 println("area=$area6")15}outputwidth=2 area=6
width ← 7, area ← 21
8fun main() {9 val width→ 7 = 710 val box = Box(width7, 3)11 val area→ 21 = box.area211213 println("width=$width7")14 println("area=$area21")15}outputwidth=7 area=21