Vous êtes sur la page 1sur 6

Test et QCM JAVA

Auteur Agnès Guerraz


Date : Octobre 2006
Module : TC2

Instructions pour le QCM :


Ce Test / QCM sert à vérifier vos connaissances du langage java.
Cochez le ou les réponses parmi les choix proposés, vous pouvez ajouter des explications
supplémentaires aux choix que vous proposez.
Répondez par des phrases aux questions posées.

1. Classe et constructeur
1. Donner la définition d'une classe
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
2. Quelle est la visibilité d'une classe publique, quelle est la visibilité par défaut?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
3. Qu'est-ce qu'une classe abstraite ? Quelle est la syntaxe Java pour la définir ?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
4. Qu'est-ce qu'une méthode de classe? Quelle syntaxe java permet de définir une telle
méthode ?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________

5. Qu'est-ce qu'une sous-classe d'une classe ? quelle syntaxe java permet de définir une
sous-classe?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________

6. Que se passe-t-il lorsqu'une classe possède le modificateur final ?


____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
7. A quoi sert un constructeur ?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
8. Que fait le compilateur lorsque le programmeur n'a pas défini de constructeur ?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
9. Que fait l'instruction super(); ?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________

10. Cocher la ou les réponses correctes


a Une classe peut implémenter plusieurs interfaces mais doit étendre une seule classe.
b Une classe peut implémenter plusieurs classes mais doit étendre une seule interface.
c Une classe peut implémenter plusieurs classes et peut étendre plusieurs interfaces.
d Une classe doit implémenter une seule interface et étendre une seule classe.

2. Chaîne de développement java


1. Java est un langage

a Compilé
b Interprété
c Compilé et interprèté
d Ni compilé ni interprété

2. La commande permettant d'exécuter une application java est :

a javac
b java
c exec

3. La commande permettant de compiler un programme java est :

a javac
b java
c exec

4. Un fichier contenant un programme source java doit posséder l'extension :

a jav
b exe
c class
d java
5. Quand un programme java est compilé, le fichier généré possède l'extension :

a jav
b exe
c class
d java

6. Quand un programme java est compilé, le fichier généré est placé dans :
a le répertoire courant le répertoire du fichier source
b le répertoire du dessus
c le répertoire du dessous
d le répertoire "java"

7. Quels sont les noms possibles pour un fichier contenant la classe "Voiture" ?
a Voiture
b voiture
c TestVoiture.java
d Voiture.java
e voiture.java
f voiture.Java

8. Pour exécuter une application java, la classe correspondante doit obligatoirement contenir
une méthode main.
a Faux
b Vrai

9. Pour exécuter une application java dont le programme source est dans le fichier
"Test.java", je dois taper :
a javac Test
b javac Test.java
c java Test.java
d javac Test
e java Test
f java Test.class

10. Si ce programme est défini dans un package de nom MonAppli, quelle commande je dois
lancer et depuis quel répertoire ?
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________

3. Programmation
1. 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

2. Pour la classe B définie comme suit:


class B {
public B(){
System.out.print(”Ciao”);
};
public B(int i) {
this();
System.out.println(”Bonjour ”+i);};
}
quel sera le résultat de l'appel suivant ?
B monB=new B(2007);

a une erreur de compilation


b une erreur d’exécution
c l'affichage sur la console de "CiaoBonjour 2007"
d l'affichage sur la console de "Bonjour 2007"

3. Héritage, attributs et méthodes (1)

class ClasseA { double x ; }


class ClasseB extends ClasseA { int x ; }
class ClasseC extends ClasseB { char x ; }

Dans une méthode de la ClasseC, quelle variable (en donner le type) est désignée par :
x :
this.x :
super.x :
((ClasseB) this).x :
((ClasseA) this).x :
super.super.x :

4. Héritage, attributs et méthodes (2)

class ClasseA{…
public void affiche(){
System.out.println("je suis un objet de ClasseA") ;}
}
class ClasseB extends ClasseA{…
public void affiche(){
System.out.println("je suis un objet de ClasseB")} ;…
}

Quel est le résultat de l'exécution du programme suivant ?

public class ClasseTest{


public void main(String [] args) {
ClasseB b = new ClasseB() ;
b.affiche() ;
}
}
5. Héritage, attributs et méthodes (3)

class ClasseA{
public void affiche(){
System.out.println("je suis un objet de ClasseA") ;}
}
class ClasseB extends ClasseA{
// pas de redéfinition de la méthode affiche
}
class ClasseC extends ClasseB{
public void affiche(){
super.affiche() ;
System.out.println("je suis un objet de ClasseC");}
}
Quel est le résultat de l'exécution du programme suivant ?
public class ClasseTest{
public void main(String [] args) {
ClasseC c = new ClasseC() ;
c.affiche() ;
}
}

6. Héritage, attributs et méthodes (4)

class ClasseA{
public int i = 12 ;
public int f(){return i;}
public static char g(){return 'A';}
}
class ClasseB extends ClasseA{
public int i = 6 ;
public int f(){return -i;}
public static char g(){return 'B';}
}

La suite d'instructions ci-dessous est définie dans la méthode main() de la classe


ClasseTest. Compléter le tableau suivant de façon à indiquer l'action effectuée par
l'exécution de chacune des instructions de ce programme :
instruction valeur affichée commentaire
ClasseB b = new ClasseB() ;
System.out.println(b.i);
System.out.println(b.f());
System.out.println(b.g());
System.out.println(ClasseB.g());
ClasseA a = (ClasseA) b ;
System.out.println(a.i);
System.out.println(a.f());
System.out.println(a.g());
System.out.println(ClasseA.g());
7 Exceptions
7.1/ Quels types d'exception peuvent être attrapés par le cath() suivant ?
catch (Exception e) {

}
7.2/ Quel est l'inconvénient d'employer ce type de cath() d'exception ?
8 E/S

Que retourne une lecture séquentiel pour nous prévenir que nous sommes arrivé à la fin du
fichier?
a EndOfFile()
b endOfFile()
c EndOffile()

9 E/S
Quel type donnée nous renvoie une lecture dans un fichier?
a Un booléen
b Un substring()
c Un String

10 E/S
Ecrire le résultat de l'exécution du code suivant:

StringTokenizer tokens = new StringTokenizer("These are the times.");


System.out.println( tokens.countTokens()); // Should be 4.
while (tokens.hasMoreTokens())
System.out.println( tokens.nextToken());

11 E/S
L'objet appelé in, nous permet d'obtenir des caractères à partir du dossier mydata.txt, il est
passé par le FileReader et plus tard passé par le BufferedReader comme suit:

BufferedReader in = new BufferedReader(new FileReader("mydata.txt"));

Ecrire le code permettant de lire une ligne à partir du fichier.