Ministère de l’enseignement supérieur
et de la recherche scientifique PED-FR-06-00
****
Date : 13/04/2023
Institut Supérieur d’Informatique
Classe : IRS 2 Examen - Session de rattrapage Durée : 1h30
Date : Programmation Orientée Objet Documents et
20 Juin 2024 ***************** calculatrices non
Nbre pages : 2 Chargé(s) du cours : Mayssa FRIKHA autorisés
Barème : Ex1 (1*5) EX2 (15)
Exercice 1 :
Question 1 : Peut-on avoir plusieurs constructeurs dans une même classe ?
1. Oui, à condition qu'ils aient des signatures différentes.
2. Non, une classe ne peut avoir qu'un seul constructeur.
3. Oui, mais seulement si l'un d'eux est privé.
4. Non, les constructeurs doivent être définis dans des classes différentes.
Question 2 : Quel est le rôle principal du mot-clé this en Java ?
1. Se référer à la classe parente.
2. Se référer à l'objet courant.
3. Se référer à une classe statique.
4. Se référer à la méthode actuelle.
Question 3 : Les classes abstraites peuvent-elles avoir des constructeurs ?
1. Oui
2. Non
3. Oui, mais seulement si elles ont des méthodes abstraites.
4. Oui, mais seulement si elles sont finales.
Question 4 : Que signifie le mot-clé static lorsqu'il est appliqué à un attribut en Java ?
1. L'attribut appartient à une instance de la classe.
2. L'attribut appartient à la classe elle-même, et non à une instance.
3. L'attribut ne peut pas être modifié.
4. L'attribut doit être privé.
Question 5 : Qu'est-ce que le polymorphisme en Java ?
1. La capacité d'une méthode à être remplacée dans une sous-classe.
2. La capacité d'une méthode à fonctionner de manière unique en fonction de l'objet qui
l'appelle.
3. La capacité d'une variable à prendre plusieurs formes.
4. La capacité d'une classe à hériter de plusieurs classes.
Exercice 2 : Gestion d'un parking de véhicules
1) Créer la classe abstraite Vehicule qui possède les attributs privés suivants : marque (String),
modele (String), annee (int). Cette classe possède les méthodes suivantes :
1/2
constructeur avec paramètres
afficher() : qui affiche les informations du Véhicule.
getModele() qui retourne le modèle
getMarque() qui retourne la marque
getAnnee() qui retourne l’année
2) Créer la classe concrète Voiture qui étend la classe Véhicule. Cette classe possède l’attribut
privé : nombrePortes (int). Cette classe possède les méthodes suivantes :
constructeur avec paramètres
afficher() pour afficher les attributs de la voiture
getNbrPortes() qui retourne le nombre de portes
3) Créer la classe concrète Camion qui étend la classe Véhicule. Cette classe possède l’attribut
privé : capaciteCharge (double). Cette classe possède les méthodes suivantes :
constructeur avec paramètres
afficher() pour afficher les attributs du Camion
4) Créer la classe concrète Moto qui étend la classe Vehicule. Cette classe possède l’attribut
privé : type (String) (sport, cruiser, etc.). Cette classe possède les méthodes suivantes :
constructeur avec paramètres
afficher() pour afficher les attributs du Moto
getType() qui retourne le type du moto
5) Créer une classe Parking qui contient les attributs privés suivants : nom (String) et une liste
de vehicules (ArrayList), le nombre maximum de places parking (int). Cette classe contient
les méthodes suivantes :
constructeur avec paramètres
ajouter(véhicule v) : qui ajoute une véhicule
getNbrVehicule() : qui calcule le nombre de véhicules
getNombrePlacesDisponibles() qui retourne le nombre de places disponibles
AfficherDetails() : qui affiche de nombre de voitures, de camions, et de moto dans le
parking
SupprimerVéhicule(String m, String mod, int a) qui supprime un véhicule du parking
6) Créer la classe de test qui permet de :
Créer un parking et y ajouter 2 voitures, 2 camions et 1 moto.
Afficher le nombre de places disponibles dans le parking
Afficher les détails du parking
Supprimer une voiture et un camion du parking
2/2