类成员初始化
练习一:
订单类Order
class Order (var orderId:String){
}
用户类User
open class User(username: String, age: Int) {
//lateinit代表延迟初始化
lateinit var userId: String
//lateinit不能修饰基本数据类型,只能修饰对象
//lateinit var gender:Boolean
//由于order是val(相当于final)类型,因此需要用lazy(延迟初始化方式)
val order: Order by lazy {
//延迟初始化Order对象
Order("123456")
}
var username: String = username
//将set方法更改为受保护的
protected set
//重写get方法
get() {
println("获取:$field")
return field
}
var age: Int = age
//私有的set方法
private set
//重写get方法
get() {
println("获取:$field")
return field
}
}
测试类
fun main() {
val user = User("崔兴旺",28)
println(user.username)
println(user.age)
println(user.order.orderId)
}
打印输出
获取:崔兴旺
崔兴旺
获取:28
28
123456