// 使用主构造函数与属性 classUser(_id: Int, _name: String, _age: Int) { // Properties of User class val id: Int = _id // val 不可变量 var name: String = _name // var 变量 var age: Int = _age // var 变量 }
同上文 Class 中的可见性修饰一样,kotlin中属性的默认的修饰符也是 public 所以我们在外部进行变量读取,我们可以使用一下的方式。
1 2 3 4 5 6 7 8 9
val user = User(1, "Jack Sparrow", 44)
// 获得一个属性 val name = user.name
// 设定一个属性 user.age = 46
user.id = 2// Error: Val 是不能够赋值的
Getters and Setters
kotlin 中设定 Getters 和 Setters 和 Java 完全不同,完整的语法规则是
1 2 3
var <propertyName>[: <PropertyType>] [= <property_initializer>] [<getter>] [<setter>]
val simple: Int? val isEmpty: Boolean get() = this.size == 0//函数Getter
val id: Int = _id get() = field var name: String = _name get() = field //普通属性Getter set(value) { // 这里的 value 是默认名称可以修改为任何值 field = value //而这路的 field 是 也就是我们上面声明的 name } var age: Int = _age get() = field set(value) { field = value } }