Propriétés des objets et des méthodes
CHAPITRE 10
210
Remarque
Tout comme une fonction, une méthode peut recevoir par référence un paramètre d’un type
de de base. Théoriquement, on pourrait envisager d’appliquer la transmission par référence à
une variable d’un type objet, mais cela n’a généralement guère d’intérêt (on transmettrait la
référence d’une référence !).
Exercice 10.1 Soit la classe Point suivante :
class Point
{ méthode déplace (entier dx, entier dy)
{ abs = abs + dx ; ord = ord + dy
}
méthode valeurAbscisse { retourne abs }
méthode valeurOrdonnée { retourne ord }
entier abs, ord
}
Écrire une fonction (indépendante) nommée grandit telle que l’appel grandit (p, n), p
étant un point et n une valeur entière, multiplie les coordonnées de ce point par la valeur n.
3.2 L’unité d’encapsulation est la classe
Supposez que nous voulions, au sein d’une classe Point, introduire une méthode nommée
coincide chargée de détecter la coïncidence éventuelle de deux points, en fournissant un
résultat de type booléen valant vrai ou faux suivant qu’il y a ou non coïncidence. Son
appel se présentera obligatoirement sous la forme suivante, a étant un objet de type Point :
a.coincide (...)
Il nous faudra donc transmettre le second point en paramètre (plus précisément, la valeur de
la variable de type Point correspondante, donc la copie de la référence à ce point) ; s’il se
nomme b, cela nous conduira à un appel de cette forme :
a.coincide (b)
ou encore, compte tenu de la symétrie du problème :
b.coincide (a)
Voyons comment écrire la méthode coincide. Son en-tête pourrait se présenter ainsi :
booléen coincide (Point pt)
Il nous faut alors comparer les coordonnées de l’objet fourni implicitement lors de l’appel
(ses attributs étant désignés comme d’habitude par x et y) avec celles de l’objet pt reçu en
paramètre et dont les attributs sont alors désignés par pt.x et pt.y. La méthode coincide
pourrait se présenter ainsi :
booléen méthode coincide (Point pt)
{ booléen res
res := pt.x = x et pt.y = y
retourne res
}
CHAPITRE 10
210
Remarque
Tout comme une fonction, une méthode peut recevoir par référence un paramètre d’un type
de de base. Théoriquement, on pourrait envisager d’appliquer la transmission par référence à
une variable d’un type objet, mais cela n’a généralement guère d’intérêt (on transmettrait la
référence d’une référence !).
Exercice 10.1 Soit la classe Point suivante :
class Point
{ méthode déplace (entier dx, entier dy)
{ abs = abs + dx ; ord = ord + dy
}
méthode valeurAbscisse { retourne abs }
méthode valeurOrdonnée { retourne ord }
entier abs, ord
}
Écrire une fonction (indépendante) nommée grandit telle que l’appel grandit (p, n), p
étant un point et n une valeur entière, multiplie les coordonnées de ce point par la valeur n.
3.2 L’unité d’encapsulation est la classe
Supposez que nous voulions, au sein d’une classe Point, introduire une méthode nommée
coincide chargée de détecter la coïncidence éventuelle de deux points, en fournissant un
résultat de type booléen valant vrai ou faux suivant qu’il y a ou non coïncidence. Son
appel se présentera obligatoirement sous la forme suivante, a étant un objet de type Point :
a.coincide (...)
Il nous faudra donc transmettre le second point en paramètre (plus précisément, la valeur de
la variable de type Point correspondante, donc la copie de la référence à ce point) ; s’il se
nomme b, cela nous conduira à un appel de cette forme :
a.coincide (b)
ou encore, compte tenu de la symétrie du problème :
b.coincide (a)
Voyons comment écrire la méthode coincide. Son en-tête pourrait se présenter ainsi :
booléen coincide (Point pt)
Il nous faut alors comparer les coordonnées de l’objet fourni implicitement lors de l’appel
(ses attributs étant désignés comme d’habitude par x et y) avec celles de l’objet pt reçu en
paramètre et dont les attributs sont alors désignés par pt.x et pt.y. La méthode coincide
pourrait se présenter ainsi :
booléen méthode coincide (Point pt)
{ booléen res
res := pt.x = x et pt.y = y
retourne res
}
