programmation TP N°3
Java Les exceptions-Les Listes (List-ArrayList) Classe: 1DNI
1
Exercice N°2 (Les Listes)
Nous souhaitons réaliser une solution de gestion d’une agence de location de Voitures.
Une voiture est caractérisée par son matricule(int), sa marque(String) et son prix de location (double).
Deux voitures sont égales s’ils ont le même matricule.
1- Compléter la classe Voiture
public class Voiture {
private int matricule ;
private String marque;
private double prix;
public Voiture(int matricule, String marque, double prix) {
this. matricule = matricule; this.marque = marque; this.prix
= prix;}
public int getMatricule () {return matricule;}
public void setMatricule (int mat) { matricule = mat;}
public String getMarque() { return marque;}
public void setMarque(String marque) {this.marque = marque;}
public double getPrix() {return prix;}
public void setPrix(double prix) {this.prix = prix; }
public String toString() {return "[" + matricule + "," + marque +
"," + prix + "]";}
public boolean equals(Object obj){
……………………………
}
}
Cette agence permet de gérer ses voitures. La classe Agence est conforme au diagramme UML
suivant :
Agence
-listeVoitures :List<Voiture>
+ajouter(Voiture v) :void
+supprimer(Voiture v) :void
+selectionner(Critere
c) :List<Voiture>
2- La méthode ajouter(Voiture v) permet d’ajouter une nouvelle voiture. Cette méthode
déclenche une exception surveillée de type VoitureException, si la voiture existe dans
l’agence (listeVoitures). Ecrire la classe VoitureException
2
3- On souhaite pouvoir sélectionner parmi les voitures à louer toutes les voitures satisfaisant un
critère donné. On définit l’interface Critere ainsi :
a. Ecrire la classe CriterePrix qui est un critère satisfait par toutes les voitures dont le prix
est inférieur à un prix fixé à la construction du critère.
b. Sur le même principe, Ecrire la classe CritereMarque qui est un critère satisfait par toutes
les voitures d’une marque donnée. La marque est précisée à la construction du critère.
NB : Les classes CritereMarque et CriterePrix implémentent toutes les deux l’interface Critere.