首发于公众号: DSGtalk1989
我们在前文中提到的伴生对象,我们一般使用companion
关键字,跟object
来一起描述可以直接通过类名调用的对象。
一个类中只能出现一次companion
,一旦被companion object
修饰的匿名对象,可以直接通过类名静态的方式拿来使用,甚至直接通过类名即可调用。
class C {
companion object DefaultListener {
fun mouseClicked() {}
fun mouseEntered() {}
}
}
fun main() {
val a: C.DefaultListener = C
val b: C.DefaultListener = C.DefaultListener
a.mouseClicked()
b.mouseEntered()
}
Kotlin学习笔记之 1 基础语法
Kotlin学习笔记之 2 基本数据类型
Kotlin学习笔记之 3 条件控制
Kotlin学习笔记之 4 循环控制
Kotlin学习笔记之 5 类和对象
Kotlin学习笔记之 6 继承
Kotlin学习笔记之 7 接口
Kotlin学习笔记之 8 扩展
Kotlin学习笔记之 9 数据类与密封类
Kotlin学习笔记之 10 泛型
Kotlin学习笔记之 11 枚举类
Kotlin学习笔记之 12 对象表达式和对象声明
Kotlin学习笔记之 13 基础操作符run、with、let、also、apply
Kotlin学习笔记之 14 包与导入
Kotlin学习笔记之 15 伴生对象
Kotlin学习笔记之 16 委托
Kotlin学习笔记之 17 可观察属性
Kotlin学习笔记之 18 函数
Kotlin学习笔记之 19 高阶函数与 lambda 表达式
Kotlin学习笔记之 20 内联函数
Kotlin学习笔记之 21 解构声明
Kotlin学习笔记之 22 集合
Kotlin学习笔记之 23 相等判断
Kotlin学习笔记之 24 操作符重载
Kotlin学习笔记之 25 异常捕捉
Kotlin学习笔记之 26 反射
Kotlin学习笔记之 27 类型别名
Kotlin学习笔记之 28 协程基础
Kotlin学习笔记之 29 上下文与调度器
Kotlin学习笔记之 30 协程取消与超时
Kotlin学习笔记之 31 协程挂起函数的组合
Kotlin学习笔记之 32 协程异常处理
Kotlin学习笔记之 33 协程 & Retrofit