Auteur : Åvygeil
IV) Encapsulation des données
Nous allons à présent accéder à l'attribut vitesse de $voiture1 avec la
notation objet.attribut ; tapez juste après la construction de $voiture1 :
Lancez le jeu : plantage ! et c'est normal.
On ne peut pas avoir directement accès aux attributs d'une classe lorsque l'on est en dehors de cette classe.
Ceci est appelé l'encapsulation des données.
Pour avoir accès à l'attribut vitesse, on doit passer par une méthode dite d'accès en lecture, que l'on implémente à l'intérieur de la classe Voiture de manière canonique ainsi :
Ainsi, quand vous écrirez $voiture1.vitesse, vous n'accèderez pas directement à l'attribut vitesse ; vous appellerez la méthode vitesse qui va renvoyer la vitesse de l'objet courant, l'objet qui appelle la méthode.
En Ruby, il existe un raccourci très utile ; au lieu de taper la méthode d'accès en lecture, on tape en haut de la classe :
qui sera interprété comme la méthode d'accès en lecture.
De la même manière, si l'on tape dans le script Main
on court au plantage.
On doit alors implémenter dans la classe Voiture une méthode dite d'accès en écriture :
Ainsi, l'accès à vitesse n'est pas direct car la ligne de code est interprétée comme un appel à la méthode vitesse=.
Et de la même manière, on peut remplacer ce code par
qui sera interprété comme la méthode d'accès en écriture.
On peut également condenser ces 2 méthodes d'accès en tapant
Page vue 2401 fois | Auteur : Samarium

