Avatar ·

Différence entre class et object en Kotlin : quand utiliser le mot-clé object ?

Bonjour ! Je viens de commencer à apprendre Kotlin après Java et je suis confus avec le mot-clé object. En Java, on utilise new pour créer des instances, et class est juste un modèle. Mais en Kotlin, je vois que object est utilisé partout : pour déclarer des singletons, pour créer des classes anonymes, et même comme companion object à l'intérieur d'une classe. Voici un exemple qui me perturbe : ```kotlin // Est-ce une classe ? class MyClass { fun doSomething() { println("Hello from class") } } // Et ça, qu'est-ce que c'est ? Aussi une classe ? object MyObject { fun doSomething() { println("Hello from object") } } // Et comment l'utiliser ? fun main() { val instance = MyClass() // Ok, je crée une instance de classe MyObject.doSomething() // Mais ici sans new ? Pourquoi ? } ``` Expliquez-moi, s'il vous plaît, quelle est la différence fondamentale entre class et object en Kotlin. Quand faut-il utiliser class, et quand object ? Et pourquoi object ne peut-il pas être créé via un constructeur, comme une classe normale ? Je vous remercie d'avance pour les exemples.