Objets en Kotlin
Introduction aux Objets en Kotlin
En Kotlin, la création d'objets de classe repose sur deux types principaux : les expressions d'objet et les déclarations d'objet. Chacun de ces concepts a ses propres particularités et usages.
Expressions d'Objet
Une expression d'objet est une instruction qui génère un objet à partir d'une classe anonyme, c'est-à-dire une classe qui n'est pas déclarée de manière explicite. Ces classes sont idéales pour une utilisation unique.
Syntaxe des Expressions d'Objet
Voici un exemple d'expression d'objet :
fun main() {
val myObject = object {
val valueOne = 1
val valueTwo = 2
fun sum() {
val result = valueOne + valueTwo
println("La somme est : $result")
}
}
myObject.sum()
}
Ce script crée un objet qui contient deux valeurs et une fonction, puis appelle cette fonction pour afficher la somme au console.
Exemple d'Expression d'Objet :
fun main() {
val myAnonymousObject = object {
val name = "Princesse"
val color = "rose"
fun presentation() {
println("Bonjour, je suis $name, et j'aime $color.")
}
}
myAnonymousObject.presentation()
}
Cet exemple illustre un objet sans déclaration de classe explicite, produisant la sortie suivante :Bonjour, je suis Princesse, et j'aime rose.
Déclarations d'Objet
Les déclarations d'objet permettent de créer une unique instance d'une classe, communément appelée Singleton.
Syntaxe des Déclarations d'Objet
object MyObject {
val property: Type = value
fun myFunction() {
// Implémentation de la fonction
}
}
// Utilisation de l'objet
MyObject.property
MyObject.myFunction()
La déclaration d'objet associe la définition de la classe à la création de son instance, sous une forme concise et efficace.
Voici un exemple illustrant cela :
object HelloKitty {
fun sayHello(name: String) {
println("Salut, $name!")
}
}
fun main() {
HelloKitty.sayHello("Liany<3")
}
Dans cet exemple, on constate un objet appelé HelloKitty, qui contient une méthode sayHello
. Cette méthode prend un paramètre de type String et affiche le message Salut, name!
à la console. La sortie affichée sera :Salut, Liany<3!