Vous êtes sur la page 1sur 4

EPL - UL

Rattrapage - Harmattan 2022 - 2023


Programmation orientée objet (INF 207) - durée : 02h

I. Questions de cours (10 pts)


Pour chacune des questions de 1 à 10, choisir la bonne réponse (Exemple : 1- X ).

1. Les trois grands principes de la programmation orientée objet sont :


A. L'encapsulation, la surcharge et le polymorphisme.
B. Les attributs ou méthodes privés, protégés et publics.
C. Les associations un à un, un à plusieurs et plusieurs à plusieurs.
D. L'encapsulation, l'association et le polymorphisme.
E. L'encapsulation, l'héritage et le polymorphisme.

2. Quelle est la différence entre classe et objet ?


A. Un objet est une instance d'une classe.
B. Un objet hérite d'une classe.
C. Une classe est une instance d'un objet.
D. Il n'y a aucune différence.

3. Le polymorphisme est un principe de la programmation orientée objet qui


permet à :
A. plusieurs méthodes de partager le même nom avec des signatures
différentes
B. une méthode de prendre plusieurs formes (implémentations) dans
différentes classes
C. une classe mère de définir une méthode en offrant la possibilité à
chacune de ses classes filles de la redéfinir
D. une classe mère ou une interface de décrire une méthode en obligeant
chacune de ses classes filles à l’implémenter
E. aucune des propositions précédentes n’est vraie.

4. Qu'affiche le code java ci-dessus ? :

1/4
A. KODJO
B. KOFFI
C. KODJO KOFFI
D. KOFFI KODJO
E. Aucune des propositions précédentes.

5. En programmation orientée objet, une classe peut être définie comme :


A. Un programme qui contient des objets qu’il fournit à la demande.
B. Une structure de données qui a des valeurs et des comportements.
C. Une méthode qui permet de créer des objets.
D. Un modèle à partir duquel on crée des objets.
E. L’interface ou la partie publique des objets.

6. Quelle écriture correspond mieux à la création d’un objet de type Voiture en


Java:
A. new Voiture voiture ;
B. Voiture voiture = new Voiture();
C. Voiture voiture = new Voiture;
D. Voiture voiture = this.Voiture();
E. voiture = new Voiture();
F. Voiture voiture = Voiture.new() ;

7. objetA est une instance de la classe ClasseA et objetB une instance de la


classe ClasseB. Si la ClasseA est une généralisation de ClasseB. Si la
ClasseA est une généralisation de ClasseB, quelle est la relation qui lie les
objets objetA et objetB ?
A. objetA hérite de objetB.
B. objetB hérite de objetA.
C. Il n'y a aucune relation d’héritage entre objetA et objetB.
D. Aucune des propositions précédentes.

8. Une classe TypeB hérite d’une classe TypeA. La classe TypeA décrit une
méthode abstraite methode().
A. TypeB peut utiliser la méthode methode() sans la redéfinir.
B. TypeB doit obligatoiraement implémenter methode().
C. TypeB peut implémenter methode() au besoin.
D. TypeB doit surcharger methode() .

2/4
9. Qu’affiche la portion de code Java suivante ?

A. bonjour
B. bonsoir
C. bonjourbonsoir
D. bonsoirbonjour
E. Rien ne s’affiche
10.On considère la portion de code Java suivante

A l’exécution on obtient le message “Methode 1”. Quel peut être le type


du paramètre objet (ligne 28)
A. TypeA
B. TypeB
C. TypeC
D. TypeA ou TypeB
E. TypeA ou TypeC
F. TypeB ou TypeC
G. TypeA ou TypeB ou TypeC.

3/4
II. Exercice : (10 pts)
Consignes : Le code doit être lisible, bien indenté et écrit en Java.

Dans un système simplifié de gestion de fichiers, il est proposé un modèle suivant


lequel les répertoires et les fichiers sont tous représentés comme des fichiers. Pour
éviter les confusions, on distingue deux types de fichier :
➔ Les répertoires: ce sont des fichiers qui peuvent contenir d’autres fichiers et
d’autres répertoires.
➔ Les fichiers simples : ils ne sont pas des répertoires; ils contiennent des
données.
Un fichier est décrit par son nom et sa date de création et appartient forcément à un
répertoire..
Le répertoire nommé “/” est le répertoire de base qui n’est contenu dans aucun autre
répertoire; il contient tous les autres répertoires.
Deux autres informations sont importantes :
● le nom complet du fichier : il est obtenu par la concaténation du nom complet
du répertoire qui le contient, suivi du caractère “C:” puis du nom du fichier.
● La taille du fichier :
○ pour un fichier simple c’est une valeur intrinsèque,
○ pour un répertoire, c’est la somme des tailles des fichiers qu’il
contient.
Ces deux informations sont fournies respectivement par les méthodes getURL() et
getTaille().

Travail à faire
1. Créer une classe abstraite Fichier qui contient entre autres, :
- la méthode abstraite getTaille(),
- la méthode getURL() dont on fournira un implémentation.

2. Représentation des fichiers simples :


a. Créer une classe FichierSimple pour décrire les fichiers simples.
b. Implémenter la méthode getTaille().

3. Représentation des répertoires:


a. Créer la classe Repertoire pour décrire les répertoires.
b. Implémenter la méthode getTaille().

--- Bonne chance ---

4/4

Vous aimerez peut-être aussi