Vous êtes sur la page 1sur 2

TP#4: Java avancé - Collections & Gestion des Exceptions

Licence Professionnelle - Génie Informatique - S3


Pr S.ROUBI
s.roubi@uiz.ac.ma

Université Ibn Zohr - Faculté Polydisciplinaire Taroudant -

Objectif du TP
Une fois les concepts de base du Java maîtrisés, il sera objet dans ce TP de manipuler les collections
en Java et en particulier les ArrayList et les Map. De plus, une mise en pratique des exceptions s’avère
nécessaire pour clôturer les travaux pratiques. L’apprenant doit être en mesure d’analyser le problème, puis
de concevoir l’architecture du programme proposé en solution, choisir les bons éléments pour élaborer le
code et enfin une bonne gestion des erreurs et exceptions.

Exercice 1 Les ensembles en List


Afin de simuler le comportement des ensembles, nous utiliserons les ArrayList. En premier, nous
considèrerons des ensembles contenant uniquement des nombres entiers.

(A) Définir une classe Ensemble avec comme attribut (privé) une "ArrayList" d’éléments de type In-
teger : private ArrayList<Integer> elements.

(B) une méthode public void ajoute(Integer a) permettant d’ajouter un élément à l’ensemble, en
vérifiant qu’il n’existe pas dans l’ensemble.
(C) une méthode public int taille() permettant de retourner la taille de l’ensemble.
(D) une méthode public Integer getElement(int i) permettant de retourner le ième élément de l’ensemble.

(E) une méthode public String toString() permettant l’affichage de l’ensemble, elle retourne l’ensemble
vide si l’ensemble ne contient aucun élément.
(F) une méthode public Ensemble union(Ensemble x) permettant de réaliser une union de l’ensemble
courant avec l’ensemble passé en paramètre, et ceci sans doublons.

(G) une méthode public Ensemble intersection(Ensemble x) permettant de réaliser l’intersection en-
tre l’ensemble courant et un ensemble passé en paramètre.
(H) une méthode pour tester l’appartenance d’un élément à un ensemble.
(I) une méthode pour donner le nombre d’éléments dans un ensemble.

Info: Les méthodes utiles de la classe ArrayList : contains(), isEmpty(), indexOf(Object obj),
lastIndexOf(Object obj), remove(int index), add(int i, Type element) ...

Exercice 2 Racine Carrée Positive


On désire créer une classe Racine qui permet d’évaluer la racine carrée positive d’un double de
façon à ce que la méthode calcule lance une exception dans le cas où le double qui lui est passé
en paramètre est négatif. On définira une classe étendant la classe Exception, correspondant à la
classe de l’exception qui sera levée dans le cas d’un opérande négative. Dans le cas d’une opérande
négative, on lancera une exception de la classe définie depuis l’intérieur de la méthode calcule de la
classe Racine. Cette erreur ne sera pas attrapée par la méthode calcule mais le sera dans la méthode
main qui utilise la méthode calcule.
Exercice 3 La Factorielle d’un Entier
Créez un programme calculant la factorielle d’un entier :
(a) Si le paramètre est -4, on souhaite que le programme affiche par exemple : -4 est négatif : la
factorielle n’est pas définie, puis se termine. Il faut pour cela définir sa propre classe d’exception.
(b) Si le paramètre est > 10, on souhaite que le programme affiche par exemple : Exception- Grand
: 20 est trop grand pour ce programme puis qu’il se termine. Il faut pour cela définir sa propre
classe d’exception

Exercice 4 Constructeur avec arguments

Chien est une classe avec deux propriétés privées String nom et int nombrePuces. Écrire un construc-
teur public Chien(String n, int np) qui propage des exceptions de type IllegalArgumentException
lorsque le nom n est null ou lorsque le nombre de puces np est négatif. Utiliser ce constructeur dans
une méthode main pour contrôler les appels new Chien ("rex", 4) et new Chien ("max", -11) et afficher
les erreurs éventuelles lors de l’exécution des constructeurs.

Vous aimerez peut-être aussi