object
a static instance of a class that there is only one of, otherwise known as a singleton
- 类似单例 singleton
- 整个 app 只有唯一一个实例
- 不需要创建 instance 实例,就能访问里面的属性、方法
- 第一次访问的时候,进行初始化,即 initialised lazily
例如:
object Tool {
fun checksum {
// ...
}
}
Tool.checksum()
companion object
companion:同伴、伴侣的意思。
- 定义在 class 中的 object
- 类似 java class 中的静态属性及方法
例如:
class ExampleClass {
companion object {
// Things that would be static in Java would go here in Kotlin
private const val str = "asdf"
fun myStaticMethod() {
// ...
}
}
fun example() {
// I can access private variables in my companion object
println(str)
}
}
// 调用
ExampleClass.myStaticMethod()
class
- 类似 java 中的 class
- 可以实例化多个
- 访问其中的属性,或方法,必须实例化
data class
- 省去了 Java 中啰嗦的 get set 写法
- 自动实现了 equals(), hashCode() 和 toString()
例如:
data class PlaceholderItem(val id: String, val content: String, val details: String) {
override fun toString(): String = content
}
参考
- https://stackoverflow.com/questions/44255946/difference-between-a-class-and-object-in-kotlin
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式