Propriétés des objets et des méthodes
CHAPITRE 10
216
on aboutit à une situation qu’on peut schématiser ainsi :
Chaque objet a1 et a2 dispose de ses propres attributs n et y. Mais il est possible de préciser
qu’un ou plusieurs attributs n’existent qu’en un seul exemplaire, quel que soit le nombre
d’objets de la classe et dont on dira qu’il s’agit d’attributs de classe. Nous conviendrons
d’utiliser la mention deClasse pour déclarer de tels attributs. Par exemple, si nous
définissons :
classe B
{ entier deClasse n
réel y
}
B b1, b2
b1 := Création B
b2 := Création B
nous aboutissons à cette situation :
Les notations b1.n et b2.n désignent donc le même attribut. En fait, cet attribut existe
indépendamment de tout objet de sa classe. Il sera possible (et même préférable) de s’y référer en le nommant simplement :
B.n
// attribut (de classe) n de la classe B
Bien entendu, ces trois notations (b1.n, b2.n, B.n) ne seront utilisables que pour un attribut
non privé. Il sera possible de prévoir des attributs de classe privés, mais l’accès ne pourra
alors s’effectuer que par le biais de méthodes (nous verrons plus loin qu’il pourra s’agir de
méthodes de classe).
Notez que depuis une méthode de la classe B, on accédera à cet attribut on le nommant
comme d’habitude n (le préfixe B. n’est pas nécessaire, mais il reste utilisable).
À l’instar de ce qui se passe dans la plupart des langages objet, nous conviendrons qu’il est
possible d’initialiser un attribut de classe, lors de sa déclaration, comme nous le ferons dans
l’exemple ci-après (rappelons que nous n’avons pas prévu de tel mécanisme pour les attributs
usuels). Notez qu’un constructeur peut agir sur un attribut de classe, mais il n’est pas possible
de compter sur lui pour l’initialiser puisque :
a1.n
a1.y
a2.n
a2.y
Objet a1
Objet a2
b2.y
Objet b1
Objet b2
b1.y
b1.n ou B.n
b2.n ou B.n
Précédent

- 239/370

Suivant