kotlin学习笔记——类成员初始化

类成员初始化

练习一:

订单类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

你可能感兴趣的:(kotlin学习笔记——类成员初始化)