Avatar ·

Diferencia entre class y object en Kotlin: ¿cuándo usar la palabra clave object?

¡Hola! Acabo de empezar a aprender Kotlin después de Java y me confundí con la palabra clave object. En Java usamos new para crear instancias, y class es solo una plantilla. Pero en Kotlin veo que object se usa en todas partes: para declarar singletons, para crear clases anónimas, e incluso como companion object dentro de una clase. Aquí hay un ejemplo que me desconcierta: ```kotlin // ¿Esto es una clase? class MyClass { fun doSomething() { println("Hello from class") } } // ¿Y esto qué es? ¿También una clase? object MyObject { fun doSomething() { println("Hello from object") } } // ¿Y cómo se usa esto? fun main() { val instance = MyClass() // Ok, creo una instancia de la clase MyObject.doSomething() // ¿Y aquí sin new? ¿Por qué? } ``` Explícame, por favor, cuál es la diferencia fundamental entre class y object en Kotlin. ¿Cuándo debo usar class y cuándo object? ¿Y por qué object no se puede crear mediante un constructor como una clase normal? Agradecería ejemplos.