:: Enseignements :: ESIPE :: E4INFO :: 2008-2009 :: Java Avancé ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Examen de Java sur machine (2h) |
Exercice 1 - Closure
Le but de cette exercice consiste à compléter la classe
Functions
pour que la classe puisse compiler sans changer le code déjà présent.
-
Dans un premier temps, nous allons uniquement nous intéresser
aux deux premiers 'samples'.
Ecrire le code du type Function ainsi qu'une méthode
apply dans la classe Functions pour que les
deux samples compilent.
Noter qu'il n'y a qu'une seule méthode apply dans la
classe Functions et que celle-ci doit être la plus
générique possible.
-
Nous nous intéressons maintenant aux samples 3 et 4.
Ecrire le code du type Function2 ainsi qu'une méthode
aggregate dans la classe Functions pour que ces
deux samples compilent.
De la même façon, il n'y a qu'une méthode aggregate.
Exercice 2 - CoupleSet
Le but de cette exercice est d'implanter une version spécifique des
Set dans le cas où l'ensemble ne peut contenir que
deux éléments au maximum (zero au minimum).
L'implantation devra respecter les principes suivant:
-
L'implantation ne devra pas utiliser de tableaux ou de collections
pour stocker ses élements. Penser à une façon plus compacte
de représenter les choses.
-
Penser que vous implantez un ensemble, pas une liste.
-
Si l'ensemble doit contenir plus de deux éléments, une exception
IllegalStateException devra être levé.
-
Il n'est pas possible d'ajouter null dans l'ensemble,
la méthode utilisée pour cela devra lever une exception
IllegalArgumentException.
-
Il est possible de tester si l'ensemble contient null
il faudra alors dire que l'ensemble ne contient pas null
en envoyant la bonne valeur de retour mais pas lever d'exception.
De la même façon, il est possible de supprimer null
de l'ensemble, il faudra alors dire que l'ensemble ne contient
pas null mais pas lever d'exception.
-
L'iterateur devra avoir une sémantique snapshot.
-
Implanter la classe CoupleSet
-
Dupliquer votre classe CoupleSet en
la renomant en SortedCoupleSet et
modifier l'implantation pour que celle-ci
respecte l'interface SortedSet.
Pour verifier que votre implantation respecte bien ce qui est
demandé, vous pouvez lancer les tests JUnit suivant:
© Université de Marne-la-Vallée