0% ont trouvé ce document utile (0 vote)
7 vues6 pages

QCM Java : Concepts de Programmation Orientée Objet

Transféré par

Amira Trabelsi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues6 pages

QCM Java : Concepts de Programmation Orientée Objet

Transféré par

Amira Trabelsi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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-correction

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. (Les paquetages permettent d’organiser
les classes en groupes connexes, réduisant ainsi la complexité du projet.)

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.(Le constructeur
initialise les objets lorsqu’ils sont créés avec new)

3. Que fait l’opérateur new en Java ?


— Il alloue de l’espace mémoire pour un nouvel objet.

4. Qu’est-ce qu’un attribut statique en Java ?


— Un attribut partagé par toutes les instances d’une classe.

5. Quel est l’effet de la modification d’un attribut statique par une instance de classe ?
— Modification de la valeur pour toutes les instances de la classe.

6. Que représente "this" en Java ?


— Une référence à l’instance courante de la classe.

7. Comment "this" est-il utilisé dans un constructeur de classe ?


— Pour appeler un autre constructeur de la même classe.

8. Quelle est la principale restriction concernant l’utilisation de méthodes statiques en Java ?


— Elles ne peuvent pas accéder à des membres non statiques de la classe.

9. Qu’est-ce qui ne fait pas partie de l’héritage en Java ?


— Constructeurs (Les constructeurs ne sont pas hérités. Une sous-classe doit définir son propre constructeur ou
appeler celui de la classe parente).

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.

11. Peut-on avoir plusieurs constructeurs dans une même classe ?


— Oui, à condition qu’ils aient des signatures différentes.

12. Quel est le rôle principal du mot-clé this en Java ?


— Se référer à l’objet courant.

13. Que signifie le mot-clé static lorsqu’il est appliqué à un attribut en Java
— L’attribut appartient à la classe elle-même, et non à une instance.

14. Qu’est-ce que le polymorphisme en Java ?


— La capacité d’une méthode à fonctionner de manière unique en fonction de l’objet qui l’appelle.

1
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet

15. Quel mot-clé est utilisé pour indiquer qu’une classe hérite d’une autre en Java ?
— extends

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 sont automatiquement accessibles dans la classe fille.

17. Quelle est la relation correcte entre une classe parente et une classe fille ?
— Une classe parente peut avoir plusieurs classes filles.

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.

19. Quel est le rôle du mot-clé super() dans le constructeur d’une classe fille ?
— Il appelle le constructeur de la classe parente.

20. Une classe fille peut-elle accéder aux attributs privés de sa classe parente ?
— Oui, mais seulement via des méthodes de la classe parente.

21. Que signifie l’héritage en Java ?


— Créer une nouvelle classe à partir d’une classe existante.

22. Quel type de relation est représenté par l’héritage en Java ?


— Est un (Is-a)

Problème
1. Classe Passage

public class Passager {


private String nom, prénom;
private long numPasport;
private static int nbpassagers =0;
public Passager(String nom, String prénom, long numPasport) {
[Link] = nom;
[Link]énom = prénom;
[Link] = numPasport;
nbpassagers++;
}
public long getNumP(){
return [Link];
}
public static void afficherNbPassagers() {
[Link]("Nombre de passagers instanciés : " + nbpassagers);
}

2
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet

// Destructeur (simulé)
protected void finalize() {
nbpassagers--; // Décrémente le compteur lors de la destruction
}
public String getNom() {return nom;}
public void setNom(String nom) {[Link] = nom;}
public String getPrénom() {return prénom;}
public void setPrénom(String prénom) {[Link]énom = prénom;}
public long getNumPasport() {return numPasport;}
public void setNumPasport(long numPasport) {[Link] = numPasport;}
public static int getNbpassagers() {return nbpassagers;}
}

2. Classe Aéroport

public class Aéroport {


String code, nom;
public Aéroport(String code, String nom) {
[Link] = code;
[Link] = nom;
}
//AJOUTER DES GETTERS / SETTERS
}

3. Classe Vol

import [Link];
public class Vol {
private String numVol;
private Aéroport aeroportDepart;
private Aéroport aeroportArrivee;
private int capaciteMax;
private ArrayList<Passager> passagers;
public Vol(String numVol, Aéroport aeroportDepart, Aéroport aeroportArrivee, int capaciteMax) {
[Link] = numVol;
[Link] = aeroportDepart;
[Link] = aeroportArrivee;
[Link] = capaciteMax;
[Link] = new ArrayList<>();
}
// Méthode pour obtenir le numéro du vol

3
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet

public String getNumVol() {return numVol;}


// Méthode pour ajouter un passager
public boolean ajouterPassager(Passager p) {
if (capaciteMax>[Link]()) {
[Link](p);
return true; // Passager ajouté avec succès
}
return false; // Pas de place disponible
}
// Méthode pour supprimer un passager
public boolean supprimerPassager(long passport)
{
for (Passager p : passagers) {
if ([Link]() == passport) {
[Link](p);
return true; // Passager supprimé avec succès
}
}
return false; // Passager non trouvé
}
// Méthode pour obtenir le nombre de places disponibles
public int getPlacesDisponibles() {
return capaciteMax - [Link]();
}
}

4. Classe Compagnie

import [Link];
public class Compagnie {
private String nom;
ArrayList<Vol>vols ;
public Compagnie(String nom) {
[Link] = nom;
[Link] = new ArrayList<>();
}
//ajouterVol(Vol v) qui ajoute un vol pour une compagnie
void ajouterVol(Vol v) {
if (![Link](v)) {
[Link](v);

4
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet

return;
}
[Link]("ce vol existe déjà");

}
// Méthode pour rechercher un vol par numéro
public void rechercherVol(String numero) {
for (Vol vol : vols) {
if ([Link]().equals(numero)) {
[Link]("Places disponibles pour le vol " + numero + ": " + [Link]());
return; // Vol trouvé, on sort de la méthode
}
}
[Link]("Pas de vol avec le numéro " + numero);
}
// Méthode statique pour comparer deux compagnies aériennes
public static String comparerCompagnies(Compagnie c1, Compagnie c2) {
int nbVolsC1 = [Link]();
int nbVolsC2 = [Link]();
if (nbVolsC1 > nbVolsC2) {
return [Link]; // c1 a plus de vols
}
else if (nbVolsC2 > nbVolsC1) {
return [Link]; // c2 a plus de vols
} else {
return "Les deux compagnies ont le même nombre de vols"; // Égalité
}
}
}

5. Classe Test :

public class Test {


public static void main(String[] args) {
// 1. Créer deux objets passagers
Passager passager1 = new Passager("Dupont", "Jean", 123456789);
Passager passager2 = new Passager("Martin", "Claire", 987654321);
// 2. Afficher le nombre de passagers
[Link]();
// 3. Créer deux objets aéroports

5
Université de Tunis El Manar
Institut supérieur d’informatique 2 ème Computer Science
Département Génie Logiciel Programmation Orientée Objet

Aéroport aeroport1 = new Aéroport("CDG", "Charles de Gaulle");


Aéroport aeroport2 = new Aéroport("ORY", "Orly");
// 4. Créer un objet vol
Vol vol1 = new Vol("AF123", aeroport1, aeroport2, 3);
// 5. Créer deux compagnies aériennes
Compagnie compagnie1 = new Compagnie("Air France");
Compagnie compagnie2 = new Compagnie("KLM");
// 6. Ajouter le vol à une compagnie aérienne créée
[Link](vol1);
// 7. Comparer les deux compagnies créées
String compagnieMaxVols = [Link](compagnie1, compagnie2);
[Link]("Compagnie avec le plus de vols : " + compagnieMaxVols);
}
}

Vous aimerez peut-être aussi