625 – Programmation
Travaux pratiques – Série 9
625 Programmation - Peter DAEHNE Version 1.0 – 13.11.2008
Objectifs
Mettre en œuvre le concept de parameterized type.
Problème
Concevoir et réaliser une classe Suite générique implantant une suite ordonnée d’éléments
quelconques. La suite est homogène, c’est-à-dire que tous ses éléments sont de même type. Le
nombre d’éléments de la suite n’est pas limité.
Les primitives d’accès à classe Suite sont définies ainsi :
Nom de la primitive Effet
Suite Constructeur. Crée une Suite vide, c’est-à-dire ne contenant
aucun élément.
ajouter Ajoute de nouveaux éléments à la fin de la Suite. Le nombre
d’éléments ajoutés est variable (on peut ajouter 0 élément).
vide Teste si la Suite est vide ou non.
premier Retourne le premier élément de la Suite. Lève l’exception1
SuiteVideException si la Suite est vide.
saufPremier Retourne la Suite formée de l’ensemble des éléments sauf le
premier. Lève l’exception2 SuiteVideException si la Suite
est vide.
La structure de stockage employée pour mémoriser les éléments de la Suite est
obligatoirement un tableau. L’implantation de votre classe ne fera donc référence à aucune
structure de données fournie par la bibliothèque Java.
Indication
Pour lever l’exception SuiteVideException, il faut exécuter l’instruction :
throw new SuiteVideException();
Nous étudierons les détails du système de gestion des exceptions dans le cadre du prochain
chapitre du cours de programmation.
Éléments fournis
La classe Personne (Personne.java) qui vous permettra de tester la classe Suite que vous
devez développer, la classe SuiteVideException (
SuiteVideException.java) ainsi que les
fichiers Suite.java, TestInt.java et TestPers.java que vous devez compléter.
Ces éléments sont fournis sur le réseau en :
\\Heg-04\data\_cours\08-09\IG\M625-M626\ÉnoncésTP\625\S09
1 Voir indication.
2 Voir indication.
625 Programmation - Peter DAEHNE Version 1.0 – 13.11.2008
À faire
1. Développer la classe Suite (Suite.java) de telle sorte qu’elle satisfasse aux spécifications
données dans l’énoncé du problème. Pour cela, vous devrez :
Définir la signature du constructeur et de chacune des primitives d’accès.
Choisir une représentation de la Suite vide.
Implanter effectivement les primitives d’accès.
2. Développer deux programmes illustrant le fonctionnement des primitives de la classe
développée en 1. Le premier programme (TestInt.java) illustrera ce fonctionnement avec une
Suite d’Integers, le second (TestPers.java) avec une Suite de Personnes (classe fournie
sur la clé USB).
3. Développer des programmes illustrant les situations d’exception dans les deux cas énoncés au
point 2 (Suite d’Integers, et Suite de Personnes).
Si vous le jugez nécessaire, vous avez le droit de créer des classes supplémentaires.
Contraintes impératives
- La classe Suite développée mettra en œuvre la généricité. Elle ne fera référence à aucune
classe de bibliothèque (hormis les classes standard du package java.lang) pour implanter la
structure de stockage employée pour mémoriser les éléments. Le nombre d’éléments qu’une
Suite peut contenir n’est pas limité.
- Le constructeur et les primitives d’accès de la classe Suite réaliseront exactement les
spécifications fournies, ni plus, ni moins ! Chaque fois que c’est possible, vous mettrez en
œuvre les nouveautés introduites dans le langage Java à partir de la version 5 que nous avons
étudiées en cours (généricité, nouvelle version du formant for, auto-boxing/unboxing, méthodes d’arité
variable, import statique).
- Les programmes de test illustreront le fonctionnement de chacune des primitives pour tous les
cas d’utilisation envisageables. Leur objectif est d’illustrer le fonctionnement de la classe
Suite, pas de constituer un jeu de test exhaustif de cette classe.
Délai
Ce travail est à rendre à l'assistant le mardi 25.11.2008 à 13h00 au plus tard.
1 / 1 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 !