Avatar ·

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不能像普通类那样通过构造函数创建?希望能有例子说明。