Atributs et méthodes de classe
215
Notez bien que la variable locale res disparaît à la fin de l’exécution de la méthode symétrique. En revanche, l’objet instancié par Création Point(y, x) continue d’exister.
Remarque
Dans les langages où les objets sont gérés par valeur, il existe généralement deux possiblités
de transmission du résultat :
– par référence : on se retrouve dans la situation que nous venons d’étudier ; il faut cependant éviter de renvoyer la référence à un objet local...
– par valeur : on effectue une copie d’un objet qui n’a plus besoin d’exister après l’exécution de la fonction (autrement dit, on peut recopier un objet local).
Exercice 10.3 On dispose d’une classe Point, dotée des attributs usuels abs et ord, ainsi
que d’un contructeur à deux paramètres. Ajouter à cette classe une méthode fournissant en
résultat ce que nous nommerons la « somme » du point courant et d’un point fourni en paramètre. Nous conviendrons que la somme de deux points est le point obtenu en effectuant la
somme de leurs abscisses et la somme de leurs ordonnées.
5 Atributs et méthodes de classe
Dans la plupart des langages objet, on peut définir des attributs qui, au lieu d’exister dans
chacun des objets de la classe, n’existent qu’en un seul exemplaire pour tous les objets d’une
même classe. Il s’agit en quelque sorte de données globales partagées par tous les objets
d’une même classe. On parle alors d’attributs de classe (ou de champs de classe). De même,
on peut définir des méthodes de classe qui peuvent être appelées indépendamment de tout
objet de la classe.
5.1 Attributs de classe
5.1.1 Présentation
Considérons tout d’abord la définition (simpliste) de classe suivante (nous ne nous préoccuperons pas pour l’instant des droits d’accès aux attributs n et y :
classe A
{ entier n
réel y
}
Chaque objet de type A possède ses propres attributs n et x. Par exemple, avec ces
instructions :
A a1, a2
a1 := Création A
a2 := Création A
Précédent

- 238/370

Suivant