Premier exemple : une classe Cercle
233
1.2.2 Objet de type point en paramètre
Voyons maintenant ce qui se produira si nous prévoyons de fournir un objet de type Point
en paramètre du constructeur de la classe Cercle. Ce dernier se présentera donc ainsi :
méthode Cercle (Point pc, réel r)
{ centre := pc
rayon := r
}
Considérons alors une adpatation de l’exemple précédent d’utilisation de notre classe
Cercle :
Point p
Cercle c
p := Création Point (3, 6)
c := Création Cercle (p, 4.5)
La situation peut être schématisée ainsi :
On constate que le point de coordonnées 3 et 6 est accessible indépendamment de l’objet de
type Cercle, par la référence contenue dans p. Si les coordonnées de ce point étaient modifiées par le biais de cette référence (en supposant que la classe Point dispose des méthodes
d’altération voulues), le centre du cercle s’en trouverait modifié en conséquence. En revanche, si l’on changeait la valeur de p, en lui faisant désigner un autre point, ceci n’aurait plus
aucune incidence sur le centre du cercle...
1.3 Cas de la gestion par valeur
Bien entendu, la règle évoquée reste toujours en vigueur dans le cas de la gestion des objets
par valeur : les méthodes de Cercle n’ont pas accès aux attributs privés d’un objet de type
Point 1 . En revanche, les différences que nous venons d’évoquer entre les deux types de
constructeurs s’estompent dans la cas de la gestion par valeur. La première situation :
Cercle (3, 6, 4.5)
c
3
6
4.5
p
1. Une exception a lieu dans les cas des langages qui permettent de définir une classe à l’intérieur d’une autre, cette
classe interne n’ayant alors, en quelque sorte, pas d’existence indépendante.
Précédent

- 256/370

Suivant