Les constructeurs
189
Point p
p := Création Point
p.déplace (3, 5)
les valeurs des attributs de l’objet référencé par p ne seront pas définis au moment de l’appel
de déplace (certains langages peuvent réaliser des initialisations par défaut mais, même
dans ce cas, il n’est pas sûr qu’elles nous conviennent).
Autrement dit, jusqu’ici, il nous fallait compter sur l’utilisateur de l’objet (sous-entendu tout
programme utilisant cet objet) pour effectuer l’appel voulu de la méthode initialise. La
notion de constructeur va permettre de mettre en place un mécanisme d’initialisation automatique, mécanisme qui pourra éventuellement aller au-delà d’une simple attribution de valeurs
initiales aux attributs.
D’une manière générale, dans tous les langages objet :
• Un constructeur se présente comme une méthode particulière de la classe, portant un nom
conventionnel ; ici, nous conviendrons (comme le font beaucoup de langages) qu’il s’agit
du nom de la classe elle-même.
• Un constructeur peut disposer de paramètres.
• Ce constructeur sera appelé au moment de la création de l’objet et il sera possible, le cas
échéant, de lui fournir les paramètres souhaités.
5.2 Exemple d’adaptation de notre classe Point
À titre d’exemple, examinons comment faire pour que le travail de la méthode initialise
de notre classe Point du paragraphe 2.3, page 184, soit maintenant réalisé par un constructeur à deux paramètres. Il nous suffira de définir notre nouvelle classe de cette manière :
classe Point
{ méthode Point (entier x, entier y)
// constructeur (même nom que la classe)
{ abs := x
ord := y
}
méthode déplace (entier dx, entier dy)
{ abs := abs + dx
ord := ord + dy
}
méthode affiche
{ écrire «Je suis un point de coordonnées », abs, « », ord
}
}
Une nouvelle classe Point, dotée d’un constructeur
Précédent

- 212/370

Suivant