Vous êtes sur la page 1sur 10

Auto-valuation Programmation en Java

Document: f0883test.fm 22/01/2013

ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

TRAINING & CONSULTING

INTRODUCTION AUTO-VALUATION PROGRAMMATION EN JAVA


Ce test comporte 20 questions choix multiples. Pour la plupart des questions, seulement une rponse correcte est possible. Il sera indiqu clairement si plusieurs rponses correctes sont possibles. Cochez les solutions qui vous semblent bonnes, et comparez vos rponses avec les solutions (la rponse nest bonne que si toutes les rponses correctes sont slectionnes). Il ny a pas de question pige, cependant, lisez attentivement les questions et les propositions. Comptez environ 30 minutes pour rpondre toutes les questions. Vous trouverez les rponses aux questions ainsi que la grille dvaluation la fin de ce document.

22/01/2013

Auto-valuation Programmation en Java

QUESTIONS AUTO-VALUATION PROGRAMMATION EN JAVA


1. Laquelle de ces commandes relatives aux tableaux de variables est syntaxiquement incorrecte? O (a) O (b) O (c) O (d) 2. Person[] p = new Person[5];
Ceci est une bonne initialisation.

Person p[5];
Il sagit ici dune construction C++ qui ne marche pas en Java

Person[] p [];
Ceci est une bonne initialisation.

Person p[][] = new Person[2][];


Ceci est une bonne initialisation.

Observez le morceau de code suivant:


public class Test { public static void main(String args[]) { int i = 0, j = 5 ; for( ; (i < 3) && (j++ < 10) ; i++ ) { System.out.print(" " + i + " " + j ); } System.out.print(" " + i + " " + j ); } }

quel en sera le rsultat? O (a) O (b) O (c) O (d) 3. 06172838 06172839 05152535 erreur de compilation

Lesquelles de ces dclarations est correcte? (2 rponses) [_] [a] [_] [b] [_] [c] [_] [d] boolean b = TRUE;
TRUE nest pas un mot cl, true bien

byte b = 255;
Il nest pas possible daffecter une valeur du type integer une variable de type byte

String s = null;
Il sagit dune dclaration dune variable de type string, initialise null. Ceci est correct

int i = new Integer(56);


Dans JDK 5.0, Il est possible daffecter une valeur du type integer une variable de type int primitif, cause du concept autoboxing

22/01/2013

Auto-valuation Programmation en Java

4.

Imaginez quune classe a comme visibilit public. Dans cette classe, nous dfinissons une mthode qui est protge (protected). Laquelle de ces affirmations est dans ce cas correcte? O (a) Cette mthode est uniquement et seulement disponible dans la classe elle-mme et lintrieur de toutes les sous-classes.
Ce nest pas juste, elle est aussi disponible lintrieur de toutes les classes dans le mme package.

O (b)

On ne peut pas dclarer dans une classe des mthodes avec une visibilit moindre que la visibilit de la classe elle-mme.
Ceci est possible.

O (c) O (d)

On na pas accs des mthodes publiques partir de mthodes protges.


On a bien accs des mthodes publiques partir de mthodes protges.

Cette mthode est utilisable lintrieur de la classe elle-mme et partir de toutes les classes qui sont dfinies dans le mme package que cette classe.

5.

Observez le morceau de code suivant:


public class Company{ public abstract double calculateSalaries(); }

Quelle affirmation est ds lors correcte? O (a) O (b) O (c) O (d) 6. Les mots cls abstract et public ne peuvent pas tre utiliss ensemble. La mthode calculateSalaries dans la classe Company doit avoir un body. Une instruction return doit se trouver dans la mthode calculateSalaries. La classe Company doit tre dfinie comme abstraite.
Parce que la classe Company doit tre dfinie comme abstraite du fait quelle contient une mthode abstraite.

Observez le morceau de code suivant:


public interface Guard{ void doYourJob(); } abstract public class Dog implements Guard{}

Quelle affirmation est ds lors correcte? O (a) Ce code ne pourra pas tre compil parce que la mthode doYourJob() doit tre dfinie en tant quabstraite dans linterface Guard.
les mthodes dans les interfaces sont tout le temps en tant quabstraite

O (b)

Ce code ne pourra pas tre compil parce que la classe Dog doit implmenter la mthode doYourJob() partir de linterface Guard.
ceci nest pas correct car Dog est une classe abstraite

O (c)

Ce code ne pourra pas tre compil parce que dans la dclaration de la classe Dog il faut utiliser le terme extends la place de implements.
non, implements est correct.

O (d) 7.

Ce code pourra tre compil sans aucun problme.

Observez les classes suivantes:


public class Person{ public void talk(){ System.out.print("I am a Person "); } public class Student extends Person { public void talk(){ System.out.print("I am a Student "); }

22/01/2013

Auto-valuation Programmation en Java

Quel sera le rsultat du morceau de code qui suit:


public class Test{ public static void main(String args[]){ Person p = new Student(); p.talk(); } }

O (a) O (b) O (c) O (d) 8.

I am a Person
non, un objet regarde toujours dabord dans sa propre classe pour limplmentation de lappel dune mthode.

I am a Student I am a Person I am a Student


non, une mthode seulement est excute.

I am a Student I am a Person
non, une mthode seulement est excute.

Observez le morceau de code suivant:


public class Person{ private String firstName; public Person(String fn){ firstName = fn; } } public class Student extends Person{ private String studentNumber; public Student(String number) { studentNumber = number; } }

Quelles affirmations sont ds lors correctes? (2 rponses) [_] [a] [_] [b] [_] [c] Ce code pourra tre compil si lon dfinit dans la classe Person un constructeur du type no-argument. Ce code pourra tre compil si lon dfinit dans la classe Student un constructeur du type no-argument. Ce code pourra tre compil dans le cas o lon code linstruction qui suit la premire ligne dans le constructeur de Student: super(); Ce code pourra tre compil si lon fait appel au constructeur de Person partir du constructeur de Student.

[_] [d]

9.

Indiquez les caractristique correctes dun enumeration type (2 rponses) [_] [a] [_] [b] [_] [c] [_] [d] enum peut dfinir des champs et mthodes statiques enum peut contenir un constructeur publique enum peut implmenter des interfaces enum est une rfrence vers une srie variable de constantes

10.

Observez le morceau de code suivant:


class Person { public int number; }

22/01/2013

Auto-valuation Programmation en Java

public class Test{ public void doIt(int i , Person p){ i = 5; p.number = 8; } public static void main(String args[]){ int x = 0; Person p = new Person(); new Test().doIt(x, p); System.out.println(x + " " + p.number); } }

Quel en sera le rsultat en sortie? O (a) O (b) O (c) O (d) 11. 08 50 00 58

Observez le morceau de code suivant:


class SalaryCalculationException extends Exception{} class Person{ public void calculateSalary() throws SalaryCalculationException { //... throw new SalaryCalculationException(); //... } } class Company{ public void paySalaries(){ new Person().calculateSalary(); } }

Quelles affirmations sont ds lors correctes? (2 rponses): [_] [a] [_] [b] [_] [c] [_] [d] Ce code pourra tre compil sans problme.
non, il faut dans paySalaries() ou bien dclarer SalaryCalculationException ou bien lintercepter.

Ce code pourra tre compil si lon fait renvoyer paySalaries() une valeur boolenne la place de void. Ce code pourra tre compil si lon rajoute dans paySalaries() un try-catch-block. Ce code pourra tre compil si lon rajoute dans la signature de la mthode paySalaries() throws SalaryCalculationException.

22/01/2013

Auto-valuation Programmation en Java

12.

A propos des mthodes statiques, quelles affirmations sont correctes? (2 rponses) les mthodes statiques sont difficiles entretenir par leur implmentation qui ne peut plus tre modifie. les mthodes statiques peuvent tre utilises travers une rfrence objet un objet de la classe dans laquelle les mthodes sont dfinies. les mthodes statiques sont toujours du type public parce quelles sont dfinies au niveau de la classe. les mthodes statiques nont pas daccs direct aux mthodes qui ne sont pas statiques et qui sont dfinies dans la mme classe.

[_] [a] [_] [b] [_] [c] [_] [d]

13.

Observez le morceau de code suivant:


class Person{ public void talk(){} } public class Test{ public static void main(String args[]){ Person p = null; try{ p.talk(); } catch(NullPointerException e){ System.out.print("There is a NullPointerException. "); } catch(Exception e){ System.out.print("There is an Exception. "); } System.out.print("Everything went fine. "); } }

Laquelle de ces affirmations est juste. O (a) O (b) Lexcution de ce programme donnera ceci: There is a NullPointerException. Everything went fine. Lexcution de ce programme donnera ceci: There is a NullPointerException.
faux, le code aprs le catch-blok est aussi excut.

O (c) O (d) 14.

Lexcution de ce programme donnera ceci: There is a NullPointerException. There is an Exception. Ce code ne pourra pas tre compil parce que Java ne connat pas les pointeurs.
Java ne connat pas les pointeurs mais il existe bien une classe NullPointerException.

A propos de lusage des Generics, quelles affirmations sont correctes? (2 rponses) Generics sont des sous-classes types des classes du framework des Collections Generics sont utiliss pour paramtrer les collections afin de vrifier les types des objets de la collection au niveau de la compilation. Generics peuvent tre utiliss pour vrifier les types des objets dune collection au niveau dexcution. Generics rendent possible d itrer facilement sur la collection totale par une boucle enhanced for.

[_] [a] [_] [b] [_] [c] [_] [d]

22/01/2013

Auto-valuation Programmation en Java

15.

Quelle classe de collection associe des valeurs avec des cls et permet de trier ces cls dans un ordre naturel? java.util.HashSet java.util.LinkedList java.util.TreeMap java.util.SortedSet

O (a) O (b) O (c) O (d) 16.

Quelle affirmation en rapport avec les composants GUI est fausse? Swing existe depuis la version 1.2 de JDK. AWT veut dire Abstract Window Toolkit On peut placer des composants AWT dans des containers Swing. Les classes AWT sont obsoltes (deprecated).

O (a) O (b) O (c) O (d) 17.

Quelles affirmations en rapport avec les vents sont justes (2 rponses) Les objets Event sont placs sur une file dattente, de laquelle ils sont retirs par des subscribers (des objets de classes qui implmentent linterface Subscriber). Un couteur (listener) dun vent doit toujours implmenter la mthode public void listen(EventObject obj). Chaque objet Event doit tre un objet dune sous-classe de EventObject. Chaque couteur (listener) de Event est en mesure de savoir quelle est la source de lEvent en appelant la mthode getSource() de lobjet Event.

[_] [a] [_] [b] [_] [c] [_] [d]

18.

Comment peut-on srialiser un objet? On doit implmenter linterface Serializable dans la classe de lobjet. On doit faire appel la mthode serializeObject() (qui est hrite de la classe Object) pour lobjet.
Non, cette mthode nexiste pas.

O (a) O (b)

O (c)

On doit appeler la mthode statique serialize(Object obj) de la classe Serializer avec comme argument lobjet que lon veut srialiser.
Non, cette classe nexiste pas.

O (d) 19.

On ne doit absolument rien faire car tous les objets peuvent tre par dfaut srialiss.

Quelles affirmations en rapport avec les IO sont justes (2 rponses)? OutputStream est la super-classe abstraite de toutes les classes qui reprsentent un flot de bytes en sortie. Les sous-classes de la classe Reader sont utilises pour lire des flots de caractres Pour crire des caractres vers un flot de sortie, on doit utiliser la classe CharacterOutputStream. Pour crire un objet sur un fichier on utilise la classe ObjectFileWriter

[_] [a] [_] [b] [_] [c] [_] [d]

22/01/2013

Auto-valuation Programmation en Java

20.

Observez le morceau de code suivant:


public class MyThread extends Thread{ public String text; public void run(){ System.out.print(text); } } public class Test{ public static void main(String args[]){ MyThread t1 = new MyThread(); t1.text = "one "; MyThread t2 = new MyThread(); t2.text = "two "; t1.start(); t2.start(); System.out.print("three "); } }

Laquelle de ces affirmations est ds lors correcte: O (a) O (b) O (c) O (d) Lorsque lon excute ce programme, on reoit toujours le rsultat suivant: one two three Lorsque lon excute ce programme, on reoit toujours le rsultat suivant: three one two Le rsultat de ce programme est incertain. La compilation de ce programme va chouer.

22/01/2013

Auto-valuation Programmation en Java

EVALUATION.
Ici sont les rponses correctes: 1. 2. 3. 4. 5. 6. 7. 8. 9. b a cd d d d b ad ac

10. a 11. c d 12. b d 13. a 14. b d 15. c 16. d 17. c d 18. a 19. a b 20. c Comptez 1 point par bonne rponse. Pour les questions avec plusieurs bonnes rponses, comptez 1 point seulement si vous avez coch toutes les bonnes alternatives. Si votre score atteint 80% ou plus, il ne vous est pas ncessaire de suivre ce cours Programmation en Java. Si votre score est entre 50% et 80%, ce cours Programmation en Java vous permettra de complter vos connaissances. Si votre score est infrieur 50%, il vous est vivement conseill de suivre ce cours Programmation en Java.

22/01/2013

Auto-valuation Programmation en Java

10