Avatar ·

Pourquoi a-t-on besoin d'un companion object en Kotlin et comment remplace-t-il les champs static de Java ?

Bonjour à tous ! J'ai récemment commencé à apprendre Kotlin après Java et je suis confronté à une incompréhension. En Java, j'utilisais souvent des champs et méthodes static, par exemple pour créer des constantes de classe ou des méthodes factory : ```java public class User { public static final int MIN_AGE = 18; public static User createGuest() { return new User("Invité"); } private String name; public User(String name) { this.name = name; } } ``` En Kotlin, je vois qu'il n'y a pas de mot-clé static, et qu'on utilise à la place un companion object. Mais je ne comprends pas complètement pourquoi un objet est nécessaire, et pas simplement static. Pourquoi n'a-t-on pas pu faire comme en Java ? Par exemple, j'écris ceci : ```kotlin class User { companion object { val MIN_AGE = 18 fun createGuest() = User("Invité") } } ```