Informatique II - Département d`Informatique

publicité
Université de Strasbourg
Master 1 - Architecture et Fonction du Vivant
Année 2009/2010
Informatique II
TD/TP 1 : Exceptions et tableaux dynamiques
Nous disposons d’un parking permettant de garer des voitures. Les voitures seront stationnées sur des places
numérotées en partant de 0. Le nombre de places est fixé une fois pour toutes à la construction du parking. Le schéma
UML est donné en fig. 1. Les exceptions à utiliser sont données en fig. 2.
1
Exercice
Consulter les définitions des classes Throwable, Error, Exception et RuntimeException ici :
– http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html
– http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Error.html
– http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html
– http://java.sun.com/j2se/1.5.0/docs/api/java/lang/RuntimeException.html
2
Exercice
Créez une classe Voiture complète. La classe pourra par exemple avoir 4 attributs nom du propriétaire, marque,
type et nombre de chevaux. La classe doit également redéfinir la méthode toString.
3
Exercice
Programmez la classe Parking. Vous devrez mettre les 3 exceptions dans fichier à part pour chacune d’elles. Toutes
les exceptions doivent avoir un parent commun - ParkingException. Qui doit être le parent de cette classe - RuntimeException, Exception, Error ou Throwable ?
1. Ecrire la classe Parking et les constructeurs.
2. Ecrire une méthode garer qui prend en paramètres une voiture, un numéro de place, et qui gare la voiture à la
place donnée si elle est libre, et lève une exception de type PlaceNonLibreException dans le cas contraire.
3. Ecrire une méthode sortir qui prend en paramètre un numéro de place et qui retire du garage la voiture à cette
place. La méthode retourne l’objet Voiture récupéré. El le lève une exception de type PlaceLibreException si la
place est vide.
4. Ajouter une exception HorsParkingException déclenchée lorsqu’un numéro de place n’est pas valide.
5. Ecrire une méthode toString affichant l’état du garage : pour chaque place, le numéro, ainsi que les caractéristiques de la voiture qui l’occupe si elle existe.
6. Ecrire ensuite une classe de test permettant de tester la classe parking.
1
Vehicule
<<interface>>
+getLength() : double
+getPlacesCount() : int
+getWheelCount() : int
Voiture
-owner : String
-mark : String
-model : String
-hp : int
+Voiture(mark, model, hp) : {constructor}
+getOwner() : String
+setOwner(owner)
+getMark() : String
+getModel() : String
+getHP() : int
+toString() : String
Parking
+Parking(capacity) : {constructor}
1 +garer(place, voiture) : void
+sortir(place) : Voiture
+isFree(place) : boolean
+toString() : String
*
F IG . 1 – Schéma UML du programme
ParkingException
PlaceLibreException
HorsParkingException
PlaceNonLibreException
F IG . 2 – Schéma UML des exceptions
2
Téléchargement