Établissement : ENIT Matière : Java et JEE Année universitaire : 2015/2016 Enseignant : Mohamed Ramzi Haddad
Devoir surveillé Classes : 2ATEL Durée : 1h30 Nombre de pages: 1
Première partie (6 pts): Q1 : Expliquer brièvement la différence entre une classe abstraite et une interface tout en indiquant leurs utilités. Q2 : Expliquer brièvement la différence entre la surcharge et la redéfinition et énumérer les règles qui les régissent. Q3 : Expliquer brièvement le concept de polymorphisme et indiquer son utilité.
Deuxième partie (14 pts): L'objectif est de modéliser le parc automobile d’une entreprise tout en respectant les principes et les bonnes pratiques de la programmation orientée objet. Les différents types de véhicules sont les suivants : les petits bus, les camions citernes, et les camions bâchés.
Tout véhicule possède une immatriculation (propre à chaque véhicule) et un poids à vide (fixe pour chaque type de véhicules). Certains véhicules, comme les camions citernes et les camions bâchés, peuvent transporter une charge dont le poids ne doit pas dépasser la charge maximale dépendant du type du véhicule.
• Un petit bus a un poids à vide de 4 tonnes, un certain nombre de places et peut atteindre une vitesse
Publicité
maximale de 150 km/h.
• Un camion citerne a un poids à vide de 3 tonnes et une charge maximale de 10 tonnes. Sa vitesse maximale
dépend de sa charge : 120 km/h si la charge est inférieure à 4 tonnes et 90 km/h sinon.
• Un camion bâché a un poids à vide de 4 tonnes et une charge maximale de 20 tonnes. Sa vitesse maximale
dépend également de sa charge : 110 km/h si la charge est inférieure à 3 tonnes et 80 km/h sinon.
Chaque véhicule doit être capable de calculer et de retourner sa vitesse maximale grâce à la méthode int calculerVitesseMaximale().
Publicité
Certains types de véhicules comme les petits bus et d’autres (qui ne sont pas modélisés ici mais qui le seront peut- être plus tard au cours d'une future extension) peuvent être loués par l’entreprise pour des intervenants externes. Chaque véhicule louable doit obligatoirement comporter une méthode de signature double facturer(int d) qui retourne le prix à facturer pour le transport sur un trajet de distance d. Le prix à facturer est fixé à 200dt/heure. La durée du trajet étant calculée sur la base de la vitesse maximale de celui-ci.
Travail à effectuer :
-
Implanter la hiérarchie de classes permettant de modéliser le problème de manière générique, robuste, facilement extensible et respectueuse des bonnes pratiques de la programmation orientée objet. Toute classe devrait employer les modificateurs d'accès les plus restrictifs pour ses attributs et proposer un constructeur paramétré.
- Développer la classe LocationConvoi qui représente un ensemble de véhicules loués par l'entreprise. Cette classe devrait proposer la méthode calculerCoutLocation qui prend comme paramètre la distance parcourue par les véhicules du convoi et retourne le coût total de la location en se basant sur la méthode facturer. Indiquer ce qu'il faudrait rajouter aux classes proposées pour faciliter le développement de la classe Entreprise regroupant une collection (de type List ou Set) de véhicules sachant que celle-ci devrait proposer des méthodes de recherche de véhicules par immatriculation, de tri par vitesse maximale et de suppression.
-
Publicité
Bon travail ;