Auto-évaluation Programmation en Java



Documents pareils
Programmer en JAVA. par Tama

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Programmation Par Objets

Cours 1: Java et les objets

TP1 : Initiation à Java et Eclipse

Développement Logiciel

as Architecture des Systèmes d Information

Langage Java. Classe de première SI

Java Licence Professionnelle CISII,

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Interfaces graphiques avec l API Swing

Calcul Parallèle. Cours 5 - JAVA RMI

PROGRAMMATION PAR OBJETS

Remote Method Invocation Les classes implémentant Serializable

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Une introduction à Java

Remote Method Invocation (RMI)

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Projet de programmation (IK3) : TP n 1 Correction

Un ordonnanceur stupide

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3

Chapitre 10. Les interfaces Comparable et Comparator 1

Package Java.util Classe générique

Corrigé des exercices sur les références

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

INITIATION AU LANGAGE JAVA

Java 1.5 : principales nouveautés

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Traduction des Langages : Le Compilateur Micro Java

Plan du cours. Historique du langage Nouveautés de Java 7

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Synchro et Threads Java TM

Environnements de développement (intégrés)

Programmation Objet Java Correction

Threads. Threads. USTL routier 1

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Applet pour visualiser les variables «automate» notifiées

Initiation à JAVA et à la programmation objet.

Java Licence Professionnelle CISII,

Objets et Programmation. origine des langages orientés-objet

Introduction au langage Java

Généralités sur le Langage Java et éléments syntaxiques.

Classe Interne, Anonyme & Enumération

Premiers Pas en Programmation Objet : les Classes et les Objets

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

1 Définition d une classe en Java

Bases Java - Eclipse / Netbeans

Génie Logiciel avec Ada. 4 février 2013

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Tp 1 correction. Structures de données (IF2)

Programmation par composants (1/3) Programmation par composants (2/3)

Exercices sur les interfaces

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Héritage presque multiple en Java (1/2)

Initiation à la programmation orientée-objet avec le langage Java

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Auto-évaluation Aperçu de l architecture Java EE

F. Barthélemy. 17 mai 2005

Utiliser Java sans BlueJ

Arbres binaires de recherche

Programmation par les Objets en Java

Dis papa, c est quoi un bus logiciel réparti?

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Programmation Orientée Objet application au langage Java Version Novembre 2007

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

TD3: tableaux avancées, première classe et chaînes

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Remote Method Invocation en Java (RMI)

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Projet gestion d'objets dupliqués

RMI le langage Java XII-1 JMF

Gestion distribuée (par sockets) de banque en Java

4. Groupement d objets

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Certificat Big Data - Master MAthématiques

Corrigés des premiers exercices sur les classes

Utilisation d objets : String et ArrayList

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Apprendre Java en 154 minutes

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Introduction : les processus. Introduction : les threads. Plan

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Java c est quoi? Java pourquoi?

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Transcription:

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 réponse correcte est possible. Il sera indiqué clairement si plusieurs réponses correctes sont possibles. Cochez les solutions qui vous semblent bonnes, et comparez vos réponses avec les solutions (la réponse n est bonne que si toutes les réponses correctes sont sélectionnées). Il n y a pas de question piège, cependant, lisez attentivement les questions et les propositions. Comptez environ 30 minutes pour répondre à toutes les questions. Vous trouverez les réponses aux questions ainsi que la grille d évaluation à la fin de ce document. 22/01/2013 Auto-évaluation Programmation en Java 2

QUESTIONS AUTO-ÉVALUATION PROGRAMMATION EN JAVA 1. Laquelle de ces commandes relatives aux tableaux de variables est syntaxiquement incorrecte? O (a) Person[] p = new Person[5]; Ceci est une bonne initialisation. O (b) Person p[5]; Il s agit ici d une construction C++ qui ne marche pas en Java O (c) Person[] p []; Ceci est une bonne initialisation. O (d) Person p[][] = new Person[2][]; Ceci est une bonne initialisation. 2. 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 résultat? O (a) 0 6 1 7 2 8 3 8 O (b) 0 6 1 7 2 8 3 9 O (c) 0 5 1 5 2 5 3 5 O (d) erreur de compilation 3. Lesquelles de ces déclarations est correcte? (2 réponses) boolean b = TRUE; TRUE n est pas un mot clé, true bien byte b = 255; Il n est pas possible d affecter une valeur du type integer à une variable de type byte String s = null ; Il s agit d une déclaration d une variable de type string, initialisée à null. Ceci est correct int i = new Integer( 56 ); Dans JDK 5.0, Il est possible d affecter une valeur du type integer à une variable de type int primitif, à cause du concept autoboxing 22/01/2013 Auto-évaluation Programmation en Java 3

4. Imaginez qu une classe a comme visibilité public. Dans cette classe, nous définissons une méthode qui est protégée (protected). Laquelle de ces affirmations est dans ce cas correcte? O (a) Cette méthode est uniquement et seulement disponible dans la classe elle-même et à l intérieur de toutes les sous-classes. Ce n est pas juste, elle est aussi disponible à l intérieur de toutes les classes dans le même package. O (b) On ne peut pas déclarer dans une classe des méthodes avec une visibilité moindre que la visibilité de la classe elle-même. Ceci est possible. O (c) On n a pas accès à des méthodes publiques à partir de méthodes protégées. On a bien accès à des méthodes publiques à partir de méthodes protégées. O (d) Cette méthode est utilisable à l intérieur de la classe elle-même et à partir de toutes les classes qui sont définies dans le même package que cette classe. 5. Observez le morceau de code suivant: public class Company{ public abstract double calculatesalaries(); Quelle affirmation est dès lors correcte? O (a) Les mots clés abstract et public ne peuvent pas être utilisés ensemble. O (b) La méthode calculatesalaries dans la classe Company doit avoir un body. O (c) Une instruction return doit se trouver dans la méthode calculatesalaries. O (d) La classe Company doit être définie comme abstraite. Parce que la classe Company doit être définie comme abstraite du fait qu elle contient une méthode abstraite. 6. Observez le morceau de code suivant: public interface Guard{ void doyourjob(); abstract public class Dog implements Guard{ Quelle affirmation est dès lors correcte? O (a) Ce code ne pourra pas être compilé parce que la méthode doyourjob() doit être définie en tant qu abstraite dans l interface Guard. les méthodes dans les interfaces sont tout le temps en tant qu abstraite O (b) Ce code ne pourra pas être compilé parce que la classe Dog doit implémenter la méthode doyourjob() à partir de l interface Guard. ceci n est pas correct car Dog est une classe abstraite O (c) Ce code ne pourra pas être compilé parce que dans la déclaration de la classe Dog il faut utiliser le terme extends à la place de implements. non, implements est correct. O (d) Ce code pourra être compilé sans aucun problème. 7. 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 4

Quel sera le résultat du morceau de code qui suit: public class Test{ public static void main(string args[]){ Person p = new Student(); p.talk(); O (a) I am a Person non, un objet regarde toujours d abord dans sa propre classe pour l implémentation de l appel d une méthode. O (b) I am a Student O (c) I am a Person I am a Student non, une méthode seulement est exécutée. O (d) I am a Student I am a Person non, une méthode seulement est exécutée. 8. 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 dès lors correctes? (2 réponses) Ce code pourra être compilé si l on définit dans la classe Person un constructeur du type no-argument. Ce code pourra être compilé si l on définit dans la classe Student un constructeur du type no-argument. Ce code pourra être compilé dans le cas où l on code l instruction qui suit à la première ligne dans le constructeur de Student: super(); Ce code pourra être compilé si l on fait appel au constructeur de Person à partir du constructeur de Student. 9. Indiquez les caractéristique correctes d un enumeration type (2 réponses) enum peut définir des champs et méthodes statiques enum peut contenir un constructeur publique enum peut implémenter des interfaces enum est une référence vers une série variable de constantes 10. Observez le morceau de code suivant: class Person { public int number; 22/01/2013 Auto-évaluation Programmation en Java 5

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 résultat en sortie? O (a) 0 8 O (b) 5 0 O (c) 0 0 O (d) 5 8 11. 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 dès lors correctes? (2 réponses): Ce code pourra être compilé sans problème. non, il faut dans paysalaries() ou bien déclarer SalaryCalculationException ou bien l intercepter. Ce code pourra être compilé si l on fait renvoyer paysalaries() une valeur booléenne à la place de void. Ce code pourra être compilé si l on rajoute dans paysalaries() un try-catch-block. Ce code pourra être compilé si l on rajoute dans la signature de la méthode paysalaries() throws SalaryCalculationException. 22/01/2013 Auto-évaluation Programmation en Java 6

12. A propos des méthodes statiques, quelles affirmations sont correctes? (2 réponses) les méthodes statiques sont difficiles à entretenir par leur implémentation qui ne peut plus être modifiée. les méthodes statiques peuvent être utilisées à travers une référence objet à un objet de la classe dans laquelle les méthodes sont définies. les méthodes statiques sont toujours du type public parce qu elles sont définies au niveau de la classe. les méthodes statiques n ont pas d accès direct aux méthodes qui ne sont pas statiques et qui sont définies dans la même classe. 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) L exécution de ce programme donnera ceci: There is a NullPointerException. Everything went fine. O (b) L exécution de ce programme donnera ceci: There is a NullPointerException. faux, le code après le catch-blok est aussi exécuté. O (c) L exécution de ce programme donnera ceci: There is a NullPointerException. There is an Exception. O (d) Ce code ne pourra pas être compilé parce que Java ne connaît pas les pointeurs. Java ne connaît pas les pointeurs mais il existe bien une classe NullPointerException. 14. A propos de l usage des Generics, quelles affirmations sont correctes? (2 réponses) Generics sont des sous-classes typées des classes du framework des Collections Generics sont utilisés pour paramétrer les collections afin de vérifier les types des objets de la collection au niveau de la compilation. Generics peuvent être utilisés pour vérifier les types des objets d une collection au niveau d exécution. Generics rendent possible d itérer facilement sur la collection totale par une boucle enhanced for. 22/01/2013 Auto-évaluation Programmation en Java 7

15. Quelle classe de collection associe des valeurs avec des clés et permet de trier ces clés dans un ordre naturel? O (a) java.util.hashset O (b) java.util.linkedlist O (c) java.util.treemap O (d) java.util.sortedset 16. Quelle affirmation en rapport avec les composants GUI est fausse? O (a) Swing existe depuis la version 1.2 de JDK. O (b) AWT veut dire Abstract Window Toolkit O (c) On peut placer des composants AWT dans des containers Swing. O (d) Les classes AWT sont obsolètes (deprecated). 17. Quelles affirmations en rapport avec les évents sont justes (2 réponses) Les objets Event sont placés sur une file d attente, de laquelle ils sont retirés par des subscribers (des objets de classes qui implémentent l interface Subscriber). Un écouteur (listener) d un évent doit toujours implémenter la méthode public void listen(eventobject obj). Chaque objet Event doit être un objet d une sous-classe de EventObject. Chaque écouteur (listener) de Event est en mesure de savoir quelle est la source de l Event en appelant la méthode getsource() de l objet Event. 18. Comment peut-on sérialiser un objet? O (a) On doit implémenter l interface Serializable dans la classe de l objet. O (b) On doit faire appel à la méthode serializeobject() (qui est héritée de la classe Object) pour l objet. Non, cette méthode n existe pas. O (c) On doit appeler la méthode statique serialize(object obj) de la classe Serializer avec comme argument l objet que l on veut sérialiser. Non, cette classe n existe pas. O (d) On ne doit absolument rien faire car tous les objets peuvent être par défaut sérialisés. 19. Quelles affirmations en rapport avec les IO sont justes (2 réponses)? OutputStream est la super-classe abstraite de toutes les classes qui représentent un flot de bytes en sortie. Les sous-classes de la classe Reader sont utilisées pour lire des flots de caractères Pour écrire des caractères vers un flot de sortie, on doit utiliser la classe CharacterOutputStream. Pour écrire un objet sur un fichier on utilise la classe ObjectFileWriter 22/01/2013 Auto-évaluation Programmation en Java 8

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 dès lors correcte: O (a) Lorsque l on exécute ce programme, on reçoit toujours le résultat suivant: one two three O (b) Lorsque l on exécute ce programme, on reçoit toujours le résultat suivant: three one two O (c) Le résultat de ce programme est incertain. O (d) La compilation de ce programme va échouer. 22/01/2013 Auto-évaluation Programmation en Java 9

EVALUATION. Ici sont les réponses correctes: 1. b 2. a 3. c d 4. d 5. d 6. d 7. b 8. a d 9. a c 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 réponse. Pour les questions avec plusieurs bonnes réponses, comptez 1 point seulement si vous avez coché toutes les bonnes alternatives. Si votre score atteint 80% ou plus, il ne vous est pas nécessaire de suivre ce cours Programmation en Java. Si votre score est entre 50% et 80%, ce cours Programmation en Java vous permettra de compléter vos connaissances. Si votre score est inférieur à 50%, il vous est vivement conseillé de suivre ce cours Programmation en Java. 22/01/2013 Auto-évaluation Programmation en Java 10