1.Kotlin 类中的属性既可以用关键字 var 声明为可变的,也可以用关键字 val 声明为只读的。
2.要使用一个属性,只要用名称引用它即可,就像 Java 中的字段
3.一个只读属性的语法和一个可变的属性的语法有两方面的不同:1、只读属性的用
val开始代替var2、只读属性不允许 setter4.
field标识符只能用在属性的访问器内
class Address {
var name: String = ……
var street: String = ……
var initialized = 1 // 类型 Int、默认 getter 和 setter
val inferredType = 1 // 类型 Int 、默认 getter
val isEmpty: Boolean
get() = true
var stringRepresentation: String
get() = this.toString()
set(value) {
setDataFromString(value) // 解析字符串并赋值给其他属性
}
var setterVisibility: String = "abc"
private set // 此 setter 是私有的并且有默认实现
var setterWithAnnotation: Any? = null
@Inject set // 用 Inject 注解此 setter
//幕后字段
var counter = 0 // 注意:这个初始器直接为幕后字段赋值
set(value) {
if (value >= 0) field = value
}
}
常量
1.使用 const 修饰符标记为 编译期常量
2.位于顶层或者是 [object 声明] 或 [companion object] 的一个成员
3.以
String或原生类型值初始化4.没有自定义 getter
const val aaa: String = "aaaaa"
延迟初始化属性与变量
1.
lateinit修饰符标记该属性2.该修饰符只能用于在类体中的属性
class A {
lateinit var a : String
}