Vous êtes sur la page 1sur 4

EMSI-Marrakech IIR 4

Examen
Langage de programmation Java Durée : 2 h

En cas d'ambiguïté dans le texte, levez cette ambiguïté en présentant votre interprétation personnelle.
Traitez les questions dans l'ordre de votre choix. N'oubliez pas de commenter vos programmes.

Exercice 1 : Questions de cours (5 pts)

1. Que se passe-t-il lorsqu'une classe possède le modificateur final ? (1pt)


2. A quoi sert un constructeur ? (1pt)
3. Que fait l'instruction super(); ? (1pt)
4. Pourquoi la machine virtuelle joue-t-elle un rôle important dans la plateforme Java ? (1pt)
5. Pour remonter une exception vous ajoutez la clause throws dans la déclaration de vos méthodes. Vous
pouvez le faire pour toutes vos méthodes, excepté peut être pour la méthode main(...). Pour quelle
raison ? (1pt)

Exercice 2 : QCM (5 pts)

Répondre par exemple par : "Q12 : Réponse a et c"

Q1. Que signifie le mot clef "static" associé à un attribut ?


a. Que la valeur de cet attribut est constante
b. Que cet attribut n'est visible que dans la classe où il est défini
c. Que cet attribut sera toujours passé par valeur
d. Que cet attribut a une valeur unique pour toutes les instances de la classe

Q2. Au sujet du mot clef "abstract", quelle assertion est fausse ?


a. Une classe abstraite ne peut être instanciée
b. Une méthode abstraite n'a pas d'implémentation
c. Une classe abstraite n'a pas forcément de classe fille
d. Une classe abstraite doit contenir au moins une méthode abstraite

Q3. Une interface en Java peut contenir :


a. Des déclarations de méthodes et de constantes
b. Des déclarations de méthodes
c. Des déclarations de méthodes et de méthodes statiques
d. Des déclarations de méthodes et de constructeurs

Q4. Quelle différence existe t-il entre les interfaces List et Set ?
a. Une List peut contenir une référence null, pas un Set
b. Un Set peut contenir deux fois le même élément, pas une List
c. Une List peut contenir deux fois le même élément, pas un Set
d. Un Set peut contenir une référence null, pas une List

Q5. Quel est le droit d'accès le plus restrictif pour donner l'accès aux membres d'une autre classe de
même package ?
a. public
b. default access
c. abstract
d. protected

Prof : M. LACHGAR Page 1/4


EMSI-Marrakech IIR 4

Q6. La déclaration suivante : public class MaClass<T> {… } permet de définir...


a. Rien du tout en java
b. Un type générique
c. Une classe abstraite dont la classe T hérite forcément
d. Un type comparable avec le type T

Q7. Dans quelle situation utilise t-on la séquence : try-catch-finally ?


a. Pour traiter les exceptions
b. Pour sortir du programme
c. Pour déboguer le code

Q8. Le code suivant :

public class Test {


public static void main(String[] args) {
LinkedList liste = new LinkedList();
liste.add("said");
liste.add("sana");
liste.addFirst(100);
liste.add("said");
liste.removeFirst();
for(int i = 0 ; i < liste.size();i++)
System.out.print(" "+liste.get(i));
}
}

a. ne compile pas.
b. compile, mais lève une exception.
c. compile, s'exécute et affiche "1 2 3 4".
d. compile, s'exécute et affiche " sana 100 said".
e. compile, s'exécute et affiche " said sana said".

Q9. Le code suivant :

public class Test {


public static void main(String[] args) {
TreeMap<Integer, String> map = new TreeMap<Integer, String>();
map.put(2, "Donnée 2");
map.put(1, "Donnée 1");
map.put(3, "Donnée 3");
System.out.println(map.get(2));
Set<Integer> set = map.keySet();
for (Integer c : set) {
System.out.print(" "+map.get(c));
}
}
}

a. ne compile pas.
b. compile, mais lève une exception.
c. compile, s'exécute et affiche " 1 2 3".
d. compile, s'exécute et affiche " Donnée 2 Donnée 1 Donnée 3".
e. compile, s'exécute et affiche " 2 1 3".

Prof : M. LACHGAR Page 2/4


EMSI-Marrakech IIR 4

Q10. Etant donner :


public static void before() {
Set set = new TreeSet();
set.add("2");
set.add(3);
set.add("1");
Iterator it = set.iterator();
System.out.print(it.next() + " ");
}

Quelle est la bonne réponse?

a. La méthode before() affichera 1 2


b. La méthode before() affichera 1 2 3
c. La méthode before() affichera trios nombres, mais dans un ordre indéterminé
d. La méthode before() ne sera pas compilée
e. La méthode before() va générer une exception de type RuntimeException

Exercice 3 : (10 pts)

Les questions sont suffisamment expliquées. Si vous avez une remarque reportez-la sur votre copie, il en sera
tenu compte.

On souhaite mettre en place la gestion des ventes d'articles électroménagers dans un magasin. La phase
d'analyse et de conception du problème a conduit au diagramme de classes suivant :

 Classe Article :

public class Article {


protected int code;
protected String nom;
protected double prixHT;

public Article(String nom, double prixHT) {


// (1) A compléter
}

public double prixTransport() {


return prixHT * 0.05; // 5% du Prix Hors Taxes de l'article
}

public String toString() {


return this.code + " " + this.nom;
}
}

Prof : M. LACHGAR Page 3/4


EMSI-Marrakech IIR 4

1. Ecrire le constructeur de la classe article. Le code doit être unique pour chaque article. (1pt)

2. Comment créer une instance de la classe Article ? (0,5pt)

3. Quel est l'intérêt de redéfinir la méthode toString() dans toutes vos classes ? (1pt)

 Classe des articles Fragiles :

4. Donner deux constructeurs de la classe Fragile à partir du constructeur de sa classe de base. l'un
en précisant l'emballage l'autre non. (1pt)

5. Le prix de transport d'un article fragile est deux fois le prix de transport normal d'un Article.
Redéfinir la méthode prixTransport() de la classe Fragile. (1pt)

6. Peut-on écrire : Article tv = new Fragile ("LG", 7000.00);


Si oui, quel est le prix de transport de l'article tv ? (1pt)

 Classe Magasin (un ensemble d'articles électroménagers) :

7. Quelle relation existe-t-il entre Magasin et Article ? (0,5pt)

8. Ajouter les attributs nécessaires pour implémenter cette relation (vous choisirez de quel côté de
la relation ajouter ces attributs). (1pt)

9. La méthode add() permet d'ajouter un article et la méthode contains() vérifie si un article est
disponible au magasin. Donner le plus simplement possible le code de ces deux méthodes. (2pt)

 Interface Exportable :

10. Expliquer en quelques mots comment rendre nos articles exportables à l'étranger? (1pt)

Prof : M. LACHGAR Page 4/4

Vous aimerez peut-être aussi