L’encapsulation et ses conséquences
187
est dotée de méthodes telles que fixeAbs, on ne saura pas si celle-ci fixe la valeur d’un attribut (abs) ou si elle modifie en conséquences les coordonnées polaires.
Exercice 9.2 Écrire une classe Point ne disposant que des 4 méthodes fixeAbs,
fixeOrd, valeurAbs et valeurOrd. Réécrire le programme du paragraphe 2.3, page 184,
en utilisant cette nouvelle classe.
3.3 Dérogations au principe d’encapsulation
Nous avons indiqué que, en programmation orientée objet, les attributs étaient encapsulés
dans la classe et nous avions donc supposé qu’il en allait ainsi des attributs abs et ord de
notre classe Point.
Cependant, la plupart des langages offrent une certaine latitude sur ce point, en autorisant que
certains attributs restent accessibles à un programme utilisant la classe. On est alors amené à
parler du statut d’accès (ou plus simplement de l’accès) d’un attribut qui peut alors être :
• privé : c’est le cas usuel que nous avons considéré jusqu’ici ;
• public : dans ce cas, l’attribut est directement lisible ou modifiable.
Si nous souhaitions déclarer qu’un attribut tel que abs est public, nous procéderions ainsi
public entier abs // l’attribut abs n’est plus encapsulé
Dans ce cas, ayant instancié un objet de type Point, référencé par exemple par la variable p,
nous pourrions utiliser directement cet attribut :
écrire p.abs
ou, pire :
p.abs := 15
Mais, nous n’exploiterons de telles possibilités que de manière exceptionnelle, éventuellement à titre de contre-exemple.
Par ailleurs, il est généralement possible de prévoir un accès privé à une méthode, de sorte
qu’elle ne soit plus accessible en dehors de la classe elle-même. Une telle démarche peut
s’avérer intéressante lorsqu’il s’agit d’introduire dans l’implémentation de la classe une
« méthode de service », utilisée par exemple par plusieurs autres méthodes, mais n’ayant rien
à voir avec le contrat de la classe puisque non prévue dans son interface.
D’une manière générale, nous conviendrons que :
On peut modifier explicitement ce statut en ajoutant le mot public dans la déclaration de
l’attribut ou le mot privé dans l’en-tête de la méthode.
Par défaut, les attributs d’une classe sont privés et les méthodes sont publiques.
Précédent

- 210/370

Suivant