Classes et objets
CHAPITRE 9
190
Lors de la création d’un objet, nous devrons prévoir les paramètres pour ce constructeur.
Nous conviendrons de procéder ainsi :
p := Création Point (3, 5)
// Allocation de l’emplacement pour un point
// et appel du constructeur auquel on fournit
// les paramètres 3 et 5
Voici comment nous pourrions adapter notre exemple du paragraphe 2.3, page 184 pour qu’il
utilise cette nouvelle classe :
Point p, r
p := Création Point (3, 5)
p.affiche()
p.deplace(2, 0)
p.affiche()
r := Création Point (6, 8)
r.affiche()
Je suis un point de coordonnées 3 5
Je suis un point de coordonnées 5 5
Je suis un point de coordonnées 6 8
Exemple d’utilisation de notre nouvelle classe Point
Remarques
1 Il est très important de noter que l’instanciation d’un objet, réalisée par un appel tel que :
Création Point (3,5)
réalise deux opérations :
– allocation d’un emplacement mémoire pour un objet de type Point ;
– appel éventuel du constructeur pour cet objet.
Ces deux opérations sont indissociables. Le constructeur ne peut pas être appelé directement (sur un objet existant), en court-circuitant la première opération :
Point p
p := Création Point (...)
.....
p.Point (...) // interdit
2 Dans nos exemples, le constructeur servait à donner des valeurs initiales aux attributs
d’un objet. Il en ira souvent ainsi mais, il faut bien comprendre qu’un constructeur peut
très bien réaliser d’autres actions, par exemple : allocation d’emplacements dynamiques, vérification d’existence de fichier, ouverture d’une connexion Internet...
5.3 Surdéfinition du constructeur
Nous avons vu paragraphe 4.6 du chapitre 8, page 162, qu’il est possible de surdéfinir des
fonctions. Cette possibilité s’applique également aux méthodes d’une classe, ainsi qu’à son
constructeur. Nous pourrons donc définir plusieurs constructeurs se distinguant par le nom-
Précédent

- 213/370

Suivant