Correction des exercices
ANNEXE
340
classe PointNom dériveDe Point
{ méthode fixePointNom (entier x, entier, y, caractère c)
{ abs := x
ord := y
nom := c
}
méthode fixeNom (caractère c)
{ nom := c
}
méthode affCoordNom
{ écrire «Point de nom », nom
affCoord
}
}
Voici un exemple d’utilisation :
Point p
PointNom pn1, pn3
p := Création Point
p.fixePoint (2, 5)
p.affCoord
pn1 := Création PointNom
pn1.fixePointNom (1, 7, ’A’)
// méthode de PointNom
pn1.affCoordNom()
// méthode de PointNom
pn1.déplace (9, 3)
// méthode de Point
pn1.affCoordNom
// méthode de PointNom
pn2 := Création PointNom
pn2.fixePoint (4, 3)
// méthode de Point
pn2.fixeNom (’B’)
// méthode de PointNom
pn2.affCoordNom
// méthode de PointNom
pn2.affCoord
// méthode de Point
Coordonnées : 2 5
Point de nom A
Coordonnées : 1 7
Point de nom A
Coordonnées : 10 10
Point de nom B
Coordonnées : 4 3
Coordonnées : 4 3
Exercice 12.3
Cet exercice est voisin du précédent mais, cette fois, les deux classes disposent d’un
constructeur. D’après les hypothèses que nous avons faites ici, celui de la classe dérivée
PointNom doit prendre en charge la construction de l’intégralité de l’objet, quitte à
s’appuyer pour cela sur le constructeur de la classe de base, ce qui est ici indispensable
puisque cette dernière ne dispose pas de méthodes d’altération. En définitive, voici ce que
pourrait être la définition de notre classe PointNom :
ANNEXE
340
classe PointNom dériveDe Point
{ méthode fixePointNom (entier x, entier, y, caractère c)
{ abs := x
ord := y
nom := c
}
méthode fixeNom (caractère c)
{ nom := c
}
méthode affCoordNom
{ écrire «Point de nom », nom
affCoord
}
}
Voici un exemple d’utilisation :
Point p
PointNom pn1, pn3
p := Création Point
p.fixePoint (2, 5)
p.affCoord
pn1 := Création PointNom
pn1.fixePointNom (1, 7, ’A’)
// méthode de PointNom
pn1.affCoordNom()
// méthode de PointNom
pn1.déplace (9, 3)
// méthode de Point
pn1.affCoordNom
// méthode de PointNom
pn2 := Création PointNom
pn2.fixePoint (4, 3)
// méthode de Point
pn2.fixeNom (’B’)
// méthode de PointNom
pn2.affCoordNom
// méthode de PointNom
pn2.affCoord
// méthode de Point
Coordonnées : 2 5
Point de nom A
Coordonnées : 1 7
Point de nom A
Coordonnées : 10 10
Point de nom B
Coordonnées : 4 3
Coordonnées : 4 3
Exercice 12.3
Cet exercice est voisin du précédent mais, cette fois, les deux classes disposent d’un
constructeur. D’après les hypothèses que nous avons faites ici, celui de la classe dérivée
PointNom doit prendre en charge la construction de l’intégralité de l’objet, quitte à
s’appuyer pour cela sur le constructeur de la classe de base, ce qui est ici indispensable
puisque cette dernière ne dispose pas de méthodes d’altération. En définitive, voici ce que
pourrait être la définition de notre classe PointNom :
