Vous êtes sur la page 1sur 5

Département Technologies de l’Informatique

Année Universitaire : 2013/2014 - Semestre : 1

Institut Supérieur des Etudes Technologiques de


Kasserine EXAMEN
Module : POO Groupes : TI 22 ,TI23

Enseignants : FKIRI Afef ET NAKKAII Laila

Date : 08 /01/2014 Durée : 1h30 Nb pages : 2 Docs : Non autorisés Calc : Non autorisées

Exercice 1 : QCM (Pts)

1) Considérer la classe suivante et indiquer quelle est l’erreur qui empêche la compilation :

class Frog{
Raison de l’erreur :
int frogCount=0 ;
public Frog(){ frontCount +=1 ; ……………………………………………
……………………………………………
} ……………………………………………
public static void main(String[]args){ ……………………………………………
……………………………………………
Frog f1=new Frog(); ……………………………………………
Frog f2=new Frog(); ……………………………………………
……………………………………………
Frog f3=new Frog(); …………
System.out.println(“cout=”+frogCount);}
}

2) Combien d’instances de la classe A crée le code suivant?


A x,u,v;
x=new A();
A y=x;
A z=new A();

(a) Aucune
(b) Cinq
(c) Trois
(d) Deux
3) Pour la classe B définie comme suit:
class B {

1
public B(){System.out.print(”Ciao”);};
public B(int i) {this(); System.out.println(”Bonjour ”+i);};
}

qu’affichera l’instruction suivante?


B monB=new B(2003);

(a) erreur de compilation


(b) erreur d’exécution
(c) CiaoBonjour 2003
(d) Bonjour 2003
4) Pour la classe C définie comme suit:
class C {
public static int i;
public int j;
public C() {i++; j=i; }
}

qu’affichera le code suivant?


C x=new C(); C y=new C(); C z= x;
System.out.println (z.i + ” et ” + z.j);

(a) 2 et 2
(b) 1 et 1
(c) 2 et 1
(d) 1 et 3
5) Pour les classes A et B définies comme suit:
class A { class B extends A {
public int x; public B() {x++;}
public A() {x=5; } public B(int i){this(); x=x+i; }
} public B(String s){super(); x- -; }}

qu’affichera le code suivant?


B b1=new B(); B b2 =new B(2003); B b3= new B(”Bonjour”);
System.out.println (b1.x + ” et ” + b2.x + ” et encore ” + b3.x );

2
(a) 6 et 2009 et encore 4
(b) 1 et 2004 et encore 4
(c) 1 et 2004 et encore 2003
(d) autre chose

6) Considérer les classes suivantes et indiquer la ou les réponses correctes :

class Vehicule{
protected int getSpeed(){return -1 ;}
}

class Car extends Vehicule{


public int getSpeed(){return 60;}
} (a) une ou des erreurs de compilation ou
d’exécution sont détectées.
class RaceCare extends Care{
public int getSpeed(){return 120;}
(b) le programme affiche : speed = -1
}

(c) le programme affiche : speed = 60


class Main{
public static void main(String[]args){ (d) le programme affiche : speed = 120
Vehicule v=new RaceCar();
System.out.println(“speed=”+v.getSpeed());}
}

7) Compléter avec (peut,doit,ne doit pas) :

Lors de la surchage d’une méthode :

(a) La nouvelle définition ………………………changer la liste des paramètres.

(b) La nouvelle définition ………………………changer le type de la valeur de retour.

(c) La nouvelle définition ………………………changer le modificateur d’accès.

8) Considérer la classe suivante et indiquer la/les réponses correcte(s) si l’instruction proposée


est insérée à la fin :

class X{ void do1(){}}


class Y extends X{ void do1(){}}
class Chrome{public static void main(String[]args){
public static void main(String []args)
{X x1=nex X();

3
X x2=new Y();
Y y1= new Y();}
/*à remplacer*/}}

Erreur(compilation) Erreur (exécution) ok


x2.do2(); a) b) c)
(Y)x2.do2(); d) e) f)
((Y)x2).do2(); g) h) i)

Exercice 2 : (Pts)

Soit la classe Personne suivante On vous demande de compléter la classe Employe et la


classe Test qui correspond à l’exécution donnée ci-dessous :

Note : Optimiser l’écriture de votre code le plus possible :

class Personne{

String nom,prenom ;
int age;
static int NBPersonne=0;
Personne(){
age=20;}
Personne(String n,String p)
{
this();
nom=n;
prenom=p;
NBPersonne++;
}
String ToString(){return(“Personne”+Personne. NBPersonne
+***NOM:*”+nom+”*PRENOM:*”+prenom+”*AGE:*”+this.age);}
}
class Employe extends Personne{…………………..}
class Test{ public static void main(String[]args){…………………….}}

Personne1***NOM: null *PRENOM:*null *AGE:* 20


Personne2***NOM: mohamed *PRENOM:*benahmed *AGE:* 20
Personne3***NOM: ahmed *PRENOM:*benhamed *AGE:* 20 C’est l’Employe d’ ID : 1
et *SALAIRE:* 1800 D
Personne4***NOM: ibrahim *PRENOM:*benahmed *AGE:* 20 C’est l’Employe d’ ID : 2
et *SALAIRE:* 1500 D

Exercice 3 : (10 Pts)

4
On modélise une application devant servir à l'inventaire d'une bibliothèque. Elle devra traiter
des documents de nature diverse : des livres, des dictionnaires, et autres types de
documents qu'on ne connait pas encore précisément mais qu'il faudra certainement ajouter un
jour (articles, bandes dessinées...). Tous les documents possèdent un numéro
d'enregistrement et un titre (Le numéro d’enregistrement est un entier qui doit être
incrémenté à chaque création d’un document). A chaque livre est associé, en plus des attributs
d’un document, un auteur et un nombre de pages, les dictionnaires ont, eux, pour attributs
supplémentaires une langue et un nombre de tomes. On veut manipuler tous les articles de
la bibliothèque au travers de la même représentation : celle d'un document.

1. Dessinez une arborescence cohérente pour ces classes.


2. Définissez les classes Document, Livre et Dictionnaire. Définissez pour chacune un
constructeur permettant d'initialiser toutes ses variables d'instances.
3. Définissez une classe Bibliothèque réduite à une méthode main permettant de tester
les classes précédentes (ainsi que les suivantes).
4. Définissez la classe ListeDeDocuments permettant de créer une liste vide de
documents, puis y joindre une fonction permettant d'ajouter un document.
5. Dans la classe ListeDeDocuments définissez une méthode tousLesAuteurs() qui
affiche la liste des numéros des documents de la liste avec, pour chacun, l'éventuel
auteur.
6. Redéfinissez la méthode toString() dans la classe Document ainsi que dans les classes
Livre et Dictionnaire et qui renvoie une chaîne de caractères décrivant un document,
un livre ou un dictionnaire. Ajoutez alors dans la classe ListeDeDocuments une
méthode tousLesDocuments() qui affiche consécutivement la description (les
informations) de tous les documents.

 Bon Travail 

Vous aimerez peut-être aussi