
你现在的位置 4 113
classes and objects
类和对象
每次你尝试设置新
的属性值时,属性
的setter都将会被调
用。例如,下面的代
码将会调用weight属
性的setter,并且75
将会作为参数传递给
setter:
myDog.weight = 75
如何编写自定义的
setter
我们将要在weight属性中添加一个自定义的
setter
,这样只有大于零的
值才能被赋给weight属性。为此,我们需要将weight属性定义从构造
函数移至类的主体部分,然后将
setter
添加到属性中,如下代码所示:
class Dog(val name: String, weight_param: Int, breed_param: String) {
var activities = arrayOf("Walks")
val breed = breed_param.toUpperCase()
var weight = weight_param
set(value) {
if (value > 0) field = value
}
...
}
下面这段代码定义了
setter
:
set(value) {
if (value > 0) field = value
}
var weight = weight_param
set(value) {
if (value > 0) weight = value
}
setter
是一个名为set的函数,我们将其放在属性声明下方。
setter
有一
个参数,通常将其命名为value ...