Année Universitaire : 2022/2023
Examen final de
Mme. OUHMIDA
JAVA Durée : 1h30
NOM : PRENOM :
Partie I
QCM : (Une seule réponse est correcte) (4 pts)
Indiquer l’affichage produit par l’exécution du code suivant : Q1.
class DVD { String name = "Game of Thrones";
String title; DVD disc1 = new DVD (name);
DVD (String t) { DVD disc2 = new DVD (name);
title = t; }} System.out.print (disc1.equals(disc2) +":");
class TestEquals { System.out.print (disc1 == disc2);
public static void main (String [] args){ }}
a. true:true d. false:true
b. true:false e. Erreur de compilation
c. false:false f. Aucune méthode equals n’est définie dans la classe DVD.
Considérer les classes suivantes et indiquer la réponse correcte : Q2.
class Counter { class TestCounter {
public static int counter = 0; public static void main (String args[]) {
public void increment () { Counter c1 = new Counter ();
counter++; } c1.increment ();
public int getValue () { Counter c2 = new Counter ();
return counter; c2.increment ();
}} System.out.println (c2.getValue ());
}}
a. Ce code ne compile pas.
b. Ce code compile et le programme affiche : 0
c. Ce code compile et le programme affiche : 1
d. Ce code compile et le programme affiche : 2
Indiquer l’affichage produit par l’exécution du code suivant : Q3.
public class A { public class C {
public int i = 3; } public static void main (String [] args) {
public class B { int k = 0;
public static void doSomething (int i, A a) { A a = new A ();
i = 10; B.doSomething (k, a);
a = new A (); System.out.println ("k = " + k);
a.i = 100; }} System.out.println ("a.i = " + a.i); }}
a. Une erreur est détectée à la compilation. d. k = 0 et a.i = 100
b. Une exception est levée à l’exécution. e. k = 10 et a.i = 3
c. k = 0 et a.i = 3 f. k = 10 et a.i = 100
Page 1|3
En considérant le code suivant, indiquer quelle instruction insérée à la place du marqueur Q4.
/* INSERT CODE HERE */ permettrait à la classe PokeDex de déterminer si la variable pikachu
référence un objet de la classe ElectricPokemon et d’afficher "PikaPika" dans ce cas.
class Pokemon { float power; } Pokemon pikachu = new ElectricPokemon();
class ElectricPokemon extends Pokemon{ /* INSERT CODE HERE */
boolean electric; } System.out.println("PikaPika");
class PokeDex { }}
public static void main (String []args) {
a. if (pikachu instanceof ElectricPokemon) c. if (pikachu = = ElectricPokemon)
b. if (pikachu.instanceOf(ElectricPokemon)) d. if (pikachu = ElectricPokemon)
Partie II
Exercice 1 : (4 pts)
Quels résultats fournira ce programme :
import java.util.*;
public class Test {
public static void main (String [] args) {
LinkedList<Integer> liste = new LinkedList <Integer> () ;
liste.add (3); liste.add (5); liste.add (3); liste.add (12); liste.add (3);
System.out.println (liste);
liste.remove (3); System.out.println (liste);
liste.remove (new Integer(3)); System.out.println (liste);
Iterator <Integer> it = liste.iterator ();
While (it.hasNext()) if (it.next()==3) it.remove();
System.out.println (liste);
}}
Réponse :
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
Exercice 2 : (12 pts)
1) Créer la méthode SommeNegVal qui prend comme paramètre une LinkedList pour :
a. Tout d’abord, remplacer les nombres pairs positifs par leurs opposés :
(exemple : 2 est remplacée par -2)
b. Par la suite, renvoyer la somme de tous les nombres négatifs dans la LinkedList.
Exemple :
La collection en paramètre {5, 2, -3, 3, 8, 5, -9} La sortie : La somme : -22
Page 2|3
public static int SommeNegVal (ArrayList<Integer> list){
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
2) Écrire un programme qui donne la main à l’utilisateur de saisir des mots (mot par ligne) et
qui stocke dans une ArrayList ceux qui contiennent au moins une fois le caractère 'b'. Le
programme finit par afficher le nombre d’éléments de la liste.
Exemple :
Entrée Sortie :
brevet Nombre d'éléments dans la structure ArrayList: 3
salle
belle
arbre
cravate
public class Caract{
public static void main (String [] args) {
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
Page 3|3