Dans cet article, vous serez présenté à la programmation orientée objet dans Kotlin. Vous apprendrez ce qu'est une classe, comment créer des objets et l'utiliser dans votre programme.
Kotlin prend en charge la programmation fonctionnelle et orientée objet.
Kotlin prend en charge des fonctionnalités telles que les fonctions d'ordre supérieur, les types de fonction et les lambdas, ce qui en fait un excellent choix pour travailler dans un style de programmation fonctionnelle. Vous en apprendrez davantage sur ces concepts dans les chapitres suivants. Cet article se concentrera sur le style de programmation orienté objet dans Kotlin.
Programmation orientée objet (POO)
Dans le style de programmation orienté objet, vous pouvez diviser un problème complexe en ensembles plus petits en créant des objets.
Ces objets partagent deux caractéristiques:
- Etat
- comportement
Prenons quelques exemples:
- La lampe est un objet
- Il peut être activé ou désactivé.
- Vous pouvez
turn on
etturn off
lampe (comportement).
- Le vélo est un objet
- Il a la vitesse actuelle, deux roues, le nombre d'états de vitesse etc.
- Il a un comportement de freinage, d'accélération, de changement de vitesse, etc.
Vous en apprendrez plus sur les caractéristiques détaillées d'une programmation orientée objet comme: l'encapsulation des données, l'héritage et le polymorphisme au fur et à mesure. Cet article se concentrera sur les bases pour garder les choses simples.
Lecture recommandée: Qu'est-ce qu'un objet?
Classe Kotlin
Avant de créer des objets dans Kotlin, vous devez définir une classe.
Une classe est un plan pour l'objet.
On peut considérer la classe comme une esquisse (prototype) d'une maison. Il contient tous les détails sur les sols, les portes, les fenêtres, etc. Sur la base de ces descriptions, nous construisons la maison. La maison est l'objet.
Puisque de nombreuses maisons peuvent être fabriquées à partir de la même description, nous pouvons créer de nombreux objets à partir d'une classe.
Comment définir une classe dans Kotlin?
Pour définir une classe dans Kotlin, le class
mot clé est utilisé:
class ClassName (// propriété // fonction membre…)
Voici un exemple:
class Lamp (// propriété (donnée membre) private var isOn: Boolean = false // fonction membre fun turnOn () (isOn = true) // fonction membre fun turnOff () (isOn = false))
Ici, nous avons défini une classe nommée Lamp.
La classe a une propriété isOn (définie de la même manière que variable) et deux fonctions membres turnOn()
et turnOff()
.
Lecture recommandée: fonctions Kotlin
Dans Kotlin, la propriété doit être initialisée ou doit être déclarée abstract
( Visitez: Kotlin Abstract Class pour en savoir plus). Dans l'exemple ci-dessus, la propriété isOn est initialisée à false
.
Les classes, objets, propriétés, fonctions membres, etc. peuvent avoir des modificateurs de visibilité. Par exemple, la propriété isOn est privée. Cela signifie que la propriété isOn ne peut être modifiée qu'à l'intérieur de la classe Lamp.
Les autres modificateurs de visibilité sont:
private
- visible (accessible) de l'intérieur de la classe uniquement.public
- visible partout.protected
- visible par la classe et sa sous-classe.internal
- tout client à l'intérieur du module peut y accéder.
Vous en apprendrez plus sur les modificateurs protected
et internal
plus tard dans l'article sur les modificateurs de visibilité Kotlin.
Si vous ne spécifiez pas le modificateur de visibilité, ce sera public
par défaut.
Dans le programme ci-dessus, turnOn()
et turnOff()
les fonctions membres sont public
alors que, la propriété isOn est privée.
Objets Kotlin
Lorsque la classe est définie, seule la spécification de l'objet est définie; aucune mémoire ou stockage n'est alloué.
Pour accéder aux membres définis dans la classe, vous devez créer des objets. Créons des objets de la classe Lamp.
class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class )
Ce programme crée deux objets l1 et l2 de classe Lamp. La propriété isOn pour les deux lampes l1 et l2 sera false
.
Comment accéder aux membres?
Vous pouvez accéder aux propriétés et aux fonctions membres d'une classe à l'aide de la .
notation. Par exemple,
l1.turnOn ()
Cette instruction appelle la fonction turnOn () pour l'objet l1.
Prenons un autre exemple:
l2.isOn = vrai
Here, we tried to assign true
to isOn property of l2 object. Note that, isOn property is private
, and if you try to access isOn from outside the class, an exception is thrown.
Example: Kotlin Class and Object
class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus(lamp: String) ( if (isOn == true) println("$lamp lamp is on.") else println("$lamp lamp is off.") ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class l1.turnOn() l2.turnOff() l1.displayLightStatus("l1") l2.displayLightStatus("l2") )
When you run the program, the output will be:
l1 Lamp is on. l2 Lamp is off.
In the above program,
Lamp
class is created.- The class has a property isOn and three member functions
turnOn()
,turnOff()
anddisplayLightStatus()
. - Two objects l1 and l2 of Lamp class are created in the
main()
function. - Here,
turnOn()
function is called using l1 object:l1.turnOn()
. This method sets isOn instance variable of l1 object totrue
. - And,
turnOff()
function is called using l2 object:l1.turnOff()
. This method sets isOff instance variable of l2 object tofalse
. - Ensuite, la
displayLightStatus()
fonction est appelée pour les objets l1 et l2 qui imprime le message approprié selon que la propriété isOn est vraie oufalse
.
Notez que la propriété isOn est initialisée à l' false
intérieur de la classe. Lorsqu'un objet de la classe est créé, la propriété isOn de l'objet est initialisée false
automatiquement. Il n'est donc pas nécessaire que l'objet l2 appelle turnOff()
pour définir la propriété isOn sur false
.
Par exemple:
class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus() ( if (isOn == true) println("lamp is on.") else println("lamp is off.") ) ) fun main(args: Array) ( val lamp = Lamp() lamp.displayLightStatus() )
Lorsque vous exécutez le programme, la sortie sera:
la lampe est éteinte.
Cet article n'est qu'une introduction à la programmation orientée objet dans Kotlin. Consultez ces chapitres l'un après l'autre pour en savoir plus:
- Constructeurs et initialiseurs Kotlin
- Kotlin ce mot-clé
- Classe imbriquée Kotlin