《Kotlin 实战》- 4 类、对象和接口

2019-06-18  本文已影响0人  Ronnie_火老师

4.1.4 内部类和嵌套类:默认是嵌套类

4.1.5 密封类:定义受限的类继承结构

4.2 声明一个带非默认构造方法或属性的类

4.2.1 初始化类:主构造方法和初始化语句块

class User constructor(_nickname: String){ // 带一个参数的主构造方法
    
    val nickname: String
    
    init{
        nickname = _nickname
    }
}
class User(val nickname: String)

4.2.2 构造方法:用不同的方式来初始化父类

constructor(ctx: Context): this(ctx,MY_STYLE){
    // ...
}

4.2.3 实现在接口中声明属性

4.2.4 通过 getter 和 setter 访问支持字段

class User(val name: String){
    var address: String = "unspecified"
        set(value: String){
            println(""" 被改了:"$field" -> "$value" """)
            field = value
        }
}

4.3 编译器生成的方法:数据类和类委托

    class B{
        val a: A
    }: IA by a{
        // 需要重写的方法在这里写
    }

4.4 object 关键字:将声明一个类与创建一个实例结合起来

4.4.1 对象声明:创建单例易如反掌

4.4.2 伴生对象:工厂方法和静态成员的地盘

class A {
    companion object {
        fun bar() {
            println (”Companion object called")
        }
    }
}
// 调用示例
> > A.bar()
Companion object called

4.4.3 作为普通对象使用的伴生对象

4.4.4 对象表达式:改变写法的匿名内部类

4.5 小结

上一篇下一篇

猜你喜欢

热点阅读