F. Mallet EPU – Département Électronique 2011/2012
TD3 – Les mécanismes de réutilisation
Durée : 1h30
Objectifs :
Utiliser les mécanismes de réutilisation
Manipuler les références
Manipuler des références polymorphiques et la liaison dynamique
A RÉFÉRENCE ET DÉLÉGATION
1. Implanter la classe Compteur qui implémente l'interface ICompteur et la classe
CompteurModulo qui hérite de Compteur. Instancier un objet à partir de chacune des classes.
Que trouvez-vous dans le menu 'Inherited from Compteur' sur l'objet de type
CompteurModulo ?
Comment expliquez-vous le menu 'Inherited from Object' disponible sur les deux objets ?
2. Implanter dans BlueJ la classe CompteurRapide (sur ICompteur) vue en cours.
La tester avec des objets de type dynamique CompteurModulo et Compteur. Proposer une
manipulation qui prouve que le CompteurRapide utilise des références et non des copies d'objets.
3. Implanter une classe CompteurNBits. Attention, le compteur N bits est un compteur modulo
particulier ! (héritage ou composition ?)
4. Peut-on accélérer un CompteurRapide avec un autre CompteurRapide ? Y remédier
éventuellement et tester la nouvelle implantation.
B COMPOSITION
1. Créer une classe Horloge qui utilise deux CompteurModulo pour représenter les minutes et les
secondes avec les opérations qui vous semblent nécessaires :
Dans un premier constructeur, les champs seront initialisés avec des valeurs données dans le
constructeur ;
Dans un second constructeur, les champs seront initialisés en utilisant la classe
java.util.Calendar (cf. exemple d’utilisation au dos).
Comment sait-on qu’il faut incrémenter les minutes ?
2. Créer la classe HorlogeHeure qui hérite de Horloge et ajoute la gestion des heures.
Comment sait-on qu’il faut incrémenter les heures ?
C LE MINUTEUR
La classe java.util.Timer modélise un minuteur. Sa méthode scheduleAtFixedRate permet
de programmer des taches (java.util.TimerTask) de façon périodique.
1. Lire la documentation de l’API Java (sur le site java.sun.com) et essayer de comprendre le bout
de code donné en exemple.
2. Construire une classe CompteurMinuteur qui utilise un minuteur pour incrémenter un
ICompteur toutes les n secondes où n est donné en paramètre du constructeur.
3. Le brancher sur la classe Horloge pour incrémenter celle-ci toutes les secondes.
D LA CALCULATRICE COMPLEXE [COMPLÉMENT]
Adapter la classe calculatrice pour permettre l’ajout dynamique d’opérations sur les nombres
complexes.
F. Mallet EPU – Département Électronique 2011/2012
Exemple d’utilisation de Calendar :
TimeZone tz_Paris = TimeZone.getTimeZone("GMT+1") ;
Calendar cal = Calendar.getInstance(tz_Paris) ;
int heure = cal.get(Calendar.HOUR) ;
int min = cal.get(Calendar.MINUTE) ;
int sec = cal.get(Calendar.SECOND) ;
Ne pas oublier d’ajouter import au début du fichier
import java.util.TimeZone;
import java.util.Calendar;
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !