“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 311 — #321
i
i
i
i
i
i
i
i
6.6 Exercices
311
➤ Exercice 2 — Les méthodes protégées dans le sens de Java
Une méthode protégée en Java a deux aspects : elle est accessible partout dans le
paquet (« package ») qui définit la classe et aussi par les descendants de la classe.
Pour cet exercice, définissez une abstraction linguistique qui permet l’annotation
d’une méthode ou attribut comme protected dans le sens Java. Montrez
comment la coder dans le modèle de la section 6.3.4 avec les noms. Utilisez les
foncteurs pour représenter les paquets Java. Par exemple, une approche pourrait
consister à définir le nom globalement dans le foncteur et aussi de le stocker
dans un attribut qui s’appelle setOfAllProtectedAttributes. Comme
l’attribut est hérité, le nom de la méthode sera visible dans toutes les sous-classes.
Élaborez les détails de cette approche.
➤ Exercice 3 — (exercice avancé) L’héritage sans état explicite
L’héritage n’a pas besoin d’état explicite ; les deux concepts sont orthogonaux.
Pour cet exercice, concevez et implémentez un système à objets avec des classes
et l’héritage mais sans état explicite. Un point de départ possible est l’implémentation des objets déclaratifs dans la section 5.4.2.
➤ Exercice 4 — (projet de recherche) La programmation des motifs de conception
Pour cet exercice, concevez un langage orienté objet qui permet l’héritage
« ascendant » (la définition d’une nouvelle superclasse d’une classe) et la programmation d’ordre supérieur. L’héritage ascendant est parfois appelé la généralisation. Implémentez et évaluez l’utilité de votre langage. Montrez comment
programmer les motifs de conception de Gamma et al. [27] comme des abstractions dans votre langage. Avez-vous besoin d’autres nouvelles opérations en plus
de la généralisation ?
Précédent

- 326/370

Suivant