Propriétés des objets et des méthodes
CHAPITRE 10
212
3.3 Exemple
Nos exemples précédents étaient encore particuliers : le premier portait sur une fonction ; le
second portait sur une méthode mais celle-ci ne modifiait pas la valeur de l’objet reçu. Voici
maintenant un exemple plus complet exploitant la possibilité pour la méthode appelée d’agir
directement sur l’objet reçu en paramètre. Nous introduisons dans une classe Point une
méthode nommée permute, chargée d’échanger les coordonnées de deux points. Elle
pourrait se présenter ainsi (n’oubliez pas que l’unité d’encapsulation est la classe) :
classe Point
{ .....
méthode permute (Point p)
{ Point c
// variable locale de type Point
c := Création Point(0,0)
// création d’un nouvel objet
c.abs := p.abs ; c.ord := p.ord
// copie de l’objet p dans l’objet c
p.abs := abs ;
p.ord := ord
// copie du point courant dans p
abs := c.abs ;
ord := c.ord
// copie de l’objet c dans le point courant
}
.....
entier abs, ord
}
Cette méthode reçoit en paramètre la référence a d’un point dont elle doit échanger les coordonnées avec celles du point concerné par la méthode. Ici, nous avons créé dans permute,
un nouvel objet de type Point qui nous sert à effectuer l’échange 1 . Illustrons le déroulement
de notre méthode. Supposons que l’on ait créé deux points de cette façon :
Point a, b
.....
a := Création Point (1, 2)
b := Création Point (5, 6)
Considérons l’appel :
a.permute (b)
À l’entrée dans la méthode permute, la situation se présente ainsi :
1. Nous aurions également pu utiliser deux variables locales de type int.
b
1
2
5
6
a
p
Objet courant
Méthode permute
dans l’appel a.permute (b)
Précédent

- 235/370

Suivant