【发布时间】:2020-09-19 06:21:39
【问题描述】:
我有以下示例类:
fun main(args: Array<String>) {
var car = Car("Ford", 50, 8000)
println(car.vendor)
println("Speed: ${car.speed}")
car.speed = 65 // How does it know which setter to invoke?
println("New speed: ${car.speed}")
}
class Car(vendor: String = "Unknown", speed: Int = 0, price: Int = 0) {
var vendor = vendor
get() = field
set(newVendor: String) {
field = newVendor
}
var speed = speed
get() = field
set(speed: Int) {
field = speed
}
var price = price
get() = field
set(newPrice: Int) {
field = price
}
}
当我更改速度属性时(请参阅注释行):Kotlin 从哪里知道,它实际上必须调用哪个 setter 方法?
我的课程中有两个 setter 方法(速度、价格),都都被命名为“set”,都需要一个整数值。
定义方法的顺序是否重要?
相应的getter-/setter-methods必须直接写在属性定义之后?还是它的工作方式有所不同?如果是:如何?
缩进只是约定吗?还是编译器需要缩进?
【问题讨论】:
标签: kotlin