1、自定义变量的读取流程
我们首先看一下Kotlin中定义变量的完整语法:
var <propertyName>[:PropertyType][= <property_initializer>]
[<getter>]
[<setter>]
类型、初始值、getter和setter都是可选的。
// 自定义getter by xj on 7/25/21 11:50 AM
val isGood
get() = 100 > 90
// 自定义setter by xj on 7/25/21 11:50 AM
var score = 3
set(value) {
// 幕后字段filed只能用于自定义的setter或者getter中 by xiaojin on 7/25/21 11:52 AM
field = value.div(10)
}
定义了自定义的getter,那么每次访问属性时都会调用它。 定义了自定义的setter,那么每次为属性赋值时都会访问它。 按照惯例,setter的参数名称是value。
2、幕后字段
当一个属性需要幕后字段时,Kotlin会自动提供,这个幕后字段可以使用filed标识符进行访问。 他只能用在属性的访问器内。