Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet
Série TD Complémentaire Java
QCM
1. Quel est l’avantage principal de l’utilisation de paquetages en Java ?
— Réduire la complexité des classes en regroupant des classes connexes.
— Améliorer les performances du programme en accélérant l’exécution.
— Simplifier la syntaxe de déclaration des variables.
— Limiter l’accès aux méthodes publiques des classes.
2. Qu’est-ce qu’un constructeur de classe en Java ?
— Une méthode spéciale qui est appelée lors de la création d’une nouvelle instance de la classe.
— Une méthode utilisée pour détruire une instance de la classe.
— Une méthode utilisée pour initialiser les variables locales dans une classe.
— Une méthode réservée pour les opérations de conversion de types.
3. Que fait l’opérateur new en Java ?
— Il crée une nouvelle variable.
— Il initialise une méthode.
— Il alloue de l’espace mémoire pour un nouvel objet.
— Il détruit un objet existant.
4. Qu’est-ce qu’un attribut statique en Java ?
— Un attribut partagé par toutes les instances d’une classe.
— Un attribut spécifique à chaque instance d’une classe.
— Un attribut qui ne peut pas être modifié après sa création.
— Un attribut qui n’est accessible que dans le même package
5. Quel est l’effet de la modification d’un attribut statique par une instance de classe ?
— Aucun effet.
— Modification de la valeur pour toutes les instances de la classe.
— Modification de la valeur uniquement pour l’instance concernée.
— Génération d’une erreur de compilation.
6. Que représente "this" en Java ?
— Un mot-clé pour définir les boucles.
— Un mot-clé utilisé pour créer de nouvelles instances.
— Une référence à l’instance courante de la classe.
— Une méthode prédéfinie pour les opérations mathématiques.
7. Comment "this" est-il utilisé dans un constructeur de classe ?
— Pour déclarer une nouvelle instance de la classe.
— Pour appeler un autre constructeur de la même classe.
1
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet
— Pour accéder à des méthodes d’une classe différente.
— Pour appeler une méthode de la classe parente
8. Quelle est la principale restriction concernant l’utilisation de méthodes statiques en Java ?
— Elles ne peuvent pas être appelées depuis une autre classe.
— Elles ne peuvent pas accéder à des membres non statiques de la classe.
— Elles ne peuvent pas être surchargées.
— Elles ne peuvent pas être déclarées dans une classe abstraite
9. Qu’est-ce qui ne fait pas partie de l’héritage en Java ?
— Constructeurs
— Méthodes
— Variables d’instance
— Interfaces
10. Quelle est la différence entre "super" et "this" en Java ?
— "super" est utilisé pour appeler des méthodes de la classe parente, tandis que "this" est utilisé pour appeler des
méthodes de la classe courante.
— "super" est utilisé pour appeler des méthodes de la classe courante, tandis que "this" est utilisé pour appeler des
méthodes de la classe parente.
— "super" est utilisé pour créer une nouvelle instance de la classe parente, tandis que "this" est utilisé pour créer
une nouvelle instance de la classe courante.
— Il n’y a pas de différence entre "super" et "this" en Java.
11. Peut-on avoir plusieurs constructeurs dans une même classe ?
— Oui, à condition qu’ils aient des signatures différentes.
— Non, une classe ne peut avoir qu’ ;un seul constructeur.
— Oui, mais seulement si l’un d’eux est privé.
— Non, les constructeurs doivent être définis dans des classes différentes.
12. Quel est le rôle principal du mot-clé this en Java ?
— Se référer à la classe parente.
— Se référer à l’objet courant.
— Se référer à une classe statique.
— Se référer à la méthode actuelle.
13. Que signifie le mot-clé static lorsqu’il est appliqué à un attribut en Java
— L’attribut appartient à une instance de la classe.
— L’attribut appartient à la classe elle-même, et non à une instance.
— L’attribut ne peut pas être modifié.
— L’attribut doit être privé.
14. Qu’est-ce que le polymorphisme en Java ?
— La capacité d’une méthode à être remplacée dans une sous-classe.
2
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet
— La capacité d’une méthode à fonctionner de manière unique en fonction de l’objet qui l’appelle.
— La capacité d’une variable à prendre plusieurs formes.
— La capacité d’une classe à hériter de plusieurs classes.
15. Quel mot-clé est utilisé pour indiquer qu’une classe hérite d’une autre en Java ?
— implements
— extends
— inherits
— super
16. Que se passe-t-il si une classe hérite d’une autre sans redéfinir ses méthodes ?
— Les méthodes de la classe parente ne sont pas accessibles.
— Les méthodes de la classe parente sont automatiquement accessibles dans la classe fille.
— La classe fille ne peut pas être instanciée.
— Les méthodes de la classe fille doivent être redéfinies.
17. Quelle est la relation correcte entre une classe parente et une classe fille ?
— Une classe parente peut hériter d’une classe fille.
— Une classe fille peut hériter de plusieurs classes parentes.
— Une classe parente peut avoir plusieurs classes filles.
— Une classe fille doit avoir exactement une classe parente.
18. Que se passe-t-il si une classe fille possède un constructeur vide, mais la classe parente n’a pas de constructeur sans
argument ?
— Il y aura une erreur de compilation.
— Le constructeur par défaut de la classe parente sera appelé.
— La classe fille utilisera un constructeur par défaut.
— Le constructeur de la classe fille sera ignoré.
19. Quel est le rôle du mot-clé super() dans le constructeur d’une classe fille ?
— Il permet d’initialiser les attributs de la classe fille.
— Il appelle le constructeur de la classe parente.
— Il appelle une méthode de la classe parente.
— Il permet de créer une nouvelle instance de la classe fille.
20. Une classe fille peut-elle accéder aux attributs privés de sa classe parente ?
— Oui, directement.
— Non, jamais.
— Oui, mais seulement via des méthodes de la classe parente.
— Oui, si la classe parente a utilisé le mot-clé protected.
21. Que signifie l’héritage en Java ?
— Reprendre le code source d’une autre classe.
— Partager l’implémentation d’une classe avec une autre.
3
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet
— Créer une nouvelle classe à partir d’une classe existante.
— Ajouter de nouvelles méthodes à une classe existante.
22. Quel type de relation est représenté par l’héritage en Java ?
— A un (Has-a)
— Est un (Is-a)
— Utilise (Uses)
— Implémente (Implements)
Problème
On souhaite créer un système de réservation de vols pour une compagnie aérienne.
1. Créer la classe Passager qui possède trois attributs privés : un nom (String), un prénom (String) un numéro de pas-
seport (un entier long), un attribut statique nbPassager (int). Ajouter les méthodes suivantes :
— Un constructeur avec paramètres
— Une méthode getNumP() qui retourne le numéro du passeport
— Une méthode statique pour afficher nombre de passagers instanciés
— Un destructeur
2. Créer la classe Aéroport qui possède deux attributs privés : un code (String), un nom (String). Ajouter les méthodes
suivantes :
— Un constructeur avec paramètres
3. Créer la classe Vol qui possède cinq attributs privés : un numéro (String), un aéroport de départ (Aeroport), un
aéroport d’arrivée (Aeroport), une capacité maximale de passagers (int) et une liste de passagers (ArrayList). Ajouter
à cette classe :
— Un constructeur avec paramètres
— Une méthode getNumVol() qui retourne le numéro du vol
— Une méthode ajouterPassager(Passager p) qui ajoute un passager à un vol.
— Une méthode supprimerPassager(long passport) qui supprime un passager
— Une méthode getPlacesDisponibles() qui retourne le nombre de places disponibles pour un vol
4. Créer la classe compagnie aérienne qui possède deux attributs privés : un nom (String) et une liste de vols (ArrayList).
Ajouter les méthodes suivantes :
— Un constructeur avec paramètre
— Une méthode ajouterVol(Vol v) qui ajoute un vol pour une compagnie
— Une méthode rechercherVol(String numero) qui affiche le nombre de places disponibles pour le numéro du vol.
Sinon elle affiche le message « pas de vol ».
— Une méthode statique comparerCompagnies(. . . ) pour comparer deux compagnies aériennes. Elle retourne le
nom de la compagnie qui a assuré le nombre maximal de vols. C’est à vous de déterminer les paramètres de cette
méthode.
5. Créer une classe de test qui permet :
4
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet
— Créer deux objets passagers.
— Afficher le nombre de passagers
— Créer deux objets aéroports.
— Créer un objet vol.
— Créer deux compagnies aériennes.
— Ajouter le vol à une compagnie aérienne créée.
— Comparer les deux compagnies créées