:: Enseignements :: Licence :: L3 :: 2009-2010 :: Programmation Objet avec Java ::
|
Interface, classe abstraite, generics
|
Exercice 1 - List, LinkedList et ArrayList
- Expliquer ce que fait le code suivant :
Quelle différence y a t'il entre LinkedList et ArrayList ?
-
A quoi sert l'interface List ?
-
Le code précédent compile avec un warning, que doit-on faire
pour supprimer celui-ci ?
Ré-écrire le code du main en conséquence
-
De la même façon, transformer le code suivant :
Quel est l'intérêt des generics en Java ?
Exercice 2 - Arbre d'héritage et expression
Le but de cet exercice est de construire un évaluateur
d'expressions arithmétiques simples. Ces expressions
sont représentées sous forme d'arbre.
L'ensemble des classes devront être définies dans le paquetage
fr.umlv.calc si aucun paquetage n'est indiqué.
On veut un type commun
fr.umlv.calc.Expr représentant des
expressions arithmétiques qui peuvent être soit une valeur
réelle (de type
fr.umlv.calc.Value) soit une opération
d'addition (de type
fr.umlv.calc.Add) qui permet d'effectuer
l'addition de deux expressions.
On veut de plus être capable d'évaluer
ces expressions en utilisant la méthode
eval().
-
Ecrire les trois classes Expr, Value
et Add et leurs méthodes double eval()
ainsi qu'une classe fr.umlv.calc.main.Main de test.
-
Implanter la méthode toString() sur les
différentes expressions.
-
Discuter sur le fait de transformer la classe Expr
en classe abstraite ou en interface.
Faîtes les changements qui s'imposent.
-
Ajouter les classes Mult et Divide
permettant d'effectuer respectivement la multiplication et
la division.
-
Refactoriser le code pour mettre à un seul endroit le code commun.
Attention à bien mettre les bon modificateurs de visibilité.
Les champs doivent être privés !
© Université de Marne-la-Vallée