Kotlin中class和object的区别:何时使用object关键字?
你好!我刚开始在Java之后学习Kotlin,对object关键字感到困惑。在Java中,我们使用new来创建实例,而class只是一个模板。但在Kotlin中,我看到object被到处使用:用于声明单例、创建匿名类,甚至作为类内部的companion object。
下面这个例子让我困惑:
```kotlin
// 这是一个类?
class MyClass {
fun doSomething() {
println("Hello from class")
}
}
// 那这是什么?也是类?
object MyObject {
fun doSomething() {
println("Hello from object")
}
}
// 如何使用?
fun main() {
val instance = MyClass() // 好的,创建类的实例
MyObject.doSomething() // 这里没有new?为什么?
}
```
请解释一下Kotlin中class和object的根本区别。什么时候应该使用class,什么时候使用object?为什么object不能像普通类那样通过构造函数创建?希望能有例子说明。