object 关键字
object 单例、companion object 伴生对象、匿名对象
object 关键字
object 在 Kotlin 中有三种用法——单例、伴生对象、匿名对象。
学完本章你将: 掌握 object 单例、companion object、匿名对象。
object 单例
kotlin
object AppConfig {
val version = "1.0"
fun printVersion() = println(version)
}
AppConfig.printVersion() // 直接使用——不需要实例化
companion object 伴生对象
kotlin
class User(val name: String) {
companion object {
const val DEFAULT_NAME = "匿名"
fun create(name: String) = User(name)
fun createDefault() = User(DEFAULT_NAME)
}
}
val u1 = User.create("小明")
val u2 = User.createDefault()
// 类似 Java 的 static——但更强大
println(User.DEFAULT_NAME)
匿名对象
kotlin
// 创建匿名实现
val listener = object : Runnable {
override fun run() {
println("执行中")
}
}
// 无接口的匿名对象
val point = object {
var x = 0
var y = 0
}
工厂模式
kotlin
class User private constructor(val name: String) {
companion object Factory {
fun create(name: String) = User(name)
}
}
val user = User.create("小明")
// val user = User("小明") // ❌ 构造函数 private