Un premier exemple : une classe Point
181
2.1 Utilisation de notre classe Point
2.1.1 Le mécanisme déclaration, instanciation
A priori, nous pourrions supposer que, de même qu’une déclaration telle que :
entier n
réserve un emplacement pour une variable de type entier,
une déclaration telle que :
Point p
réserve un emplacement pour un « objet de type Point », c’est-à-dire en fait un emplacement pour chacun de ses attributs (les méthodes, communes à tous les objets du type Point,
n’ayant, quant à elles pas besoin d’être dupliquées pour chaque objet).
Cependant, pour des questions de souplesse d’exploitation des possibilités de programmation
orientée objet, tous les langages objet permettent de fonctionner en deux étapes :
• D’une part, la déclaration précédente :
Point p
réserve simplement un emplacement pour une variable nommée p, destinée à recevoir la référence (adresse) d’un objet de type Point. Pour l’instant, la valeur de cette variable n’est
pas encore définie.
• D’autre part, il existe un mécanisme permettant de réserver l’emplacement mémoire pour
un objet, analogue à ce que nous avons appelé « gestion dynamique » dans le cas des tableaux (paragraphe 11 du chapitre 7, page 128). Dans le cas des objets, on parle d’instanciation ou de création pour désigner ce mécanisme). Ici, nous conviendrons que cette
instanciation est réalisée par l’expression suivante :
Création Point
En affectant cette valeur, par exemple à la variable p précédente :
p := Création Point
nous aboutissons à une situation que l’on peut schématiser ainsi (les deux cases vides
représentant les attributs d’un objet de type Point) :
On notera bien qu’une telle démarche fait intervenir :
• Une déclaration classique (ici d’une référence à un objet de type Point) ; elle sera exploitée
lors de la traduction du programme pour réserver l’emplacement mémoire correspondant.
• Une instruction d’instanciation qui donnera effectivement naissance à l’objet en réservant
son emplacement uniquement au moment de l’exécution de l’instruction correspondante.
Comme nous le verrons par la suite, la valeur de p pourra très bien évoluer pendant
l’exécution, par le biais d’instructions d’affectation.
p
Précédent

- 204/370

Suivant