339
Doubleton deClasse d1, d2
// références aux deux objets instanciés
entier deClasse nObj := 0
// nombre d’objets créés
booléen deClasse prem := true
// pour contrôler l’objet renvoyé
// autres attributs de la classe
}
Chapitre 12
Exercice 12.1
La méthode affiche, comme toute méthode d’une classe dérivée a accès à tous les membres publics de la classe de base, donc en particulier aux méthodes valeurAbs et
valeurOrd :
classe PointA dériveDe Point
{ méthode affiche
{ écrire «Coordonnées : », valeurAbs, « », valeurOrd
}
}
On peut alors créer des objets de type PointA et leur appliquer aussi bien les méthodes
publiques de PointA que celle de Point, comme dans ce programme :
Point p
PointA pa
p := Création Point
p.initialise (2, 5)
// affichage coordonnées p : on ne peut pas utiliser affiche
écrire («Coordonnées du point : », p.valeurAbs, « », p.valeurOrd
pa.initialise (1, 8)
// utilise la méthode initialise de Point
pa.affiche
// et la méthode affiche de PointA
Coordonnées du point : 2 5
Coordonnées : 1 8
Si la classe Point n’avait pas disposé des méthodes d’accès, il n’aurait pas été possible
d’accéder à ses attributs privés abs et ord, depuis les méthodes de la classe PointA. Il
n’aurait donc pas été possible de la doter de la méthode affiche.
Notez que l’affichage des coordonnées de p :
écrire («Coordonnées du point : », p.valeurAbs, « », p.valeurOrd
ne peut pas se faire en utilisant affiche
p.affiche
// la classe Point ne dispose pas de méthode affiche
Exercice 12.2
Nous prévoyons tout naturellement un attribut privé, de type caractère, que nous nommerons
nom. La méthode fixeNom est triviale. Compte tenu de l’encapsulation des données de
Point, les deux autres méthodes doivent absolument recourir aux méthodes publiques de
Point.
Précédent

- 362/370

Suivant