QCM de Java corrigé - Irif

QCM de Java corrigé. 1. Java est un langage. (a). Compilé. (b). Interprété. (c). Compilé et interprété. (d). Ni compilé ni interprété. Le compilateur compile le code ...

Part of the document

QCM de Java corrig´e
1. Java est un langage
(a) Compil´e
(b) Interpr´et´e
(c)Compil´e et interpr´et´e
(d) Ni compil´e ni interpr´et´e
Le compilateur compile le code source vers un bytecode, la machine virtuelle Java
(JVM) interpr`ete ce bytecode
2. Java est un langage d´evelopp´e par
(a) Hewlett-Packard
(b)Sun Microsystems
(c) Microsoft
(d) Oracle
Par James Gosling chez Sun.
3. Combien d"instances de la classe A cr´ee le code suivant?
A x,u,v;
x=new A();
A y=x;
A z=new A();
(a) Aucune
(b) Cinq
(c) Trois
(d)DeuxIl y a deux instances de A cr´e´ees par les deuxnew, la premi`ere est r´ef´erenc´ee par x
et y, la deuxi`eme par z.
4. Pour la classe B d´efinie comme suit:
class B{
public B(){System.out.print("Ciao");};
public B(int i){this(); System.out.println("Bonjour "+i);};
}
qu"affichera l"instruction suivante?
B monB=new B(2003);
(a) erreur de compilation
(b) erreur d"ex´ecution
(c)CiaoBonjour 2003
(d) Bonjour 2003
L"instruction invoque le constructeur avec un argument entier (2003). Ce dernier
appelle explicitement le constructeur sans arguments (this()) qui imprime "Ciao",
et ensuite le message "Bonjour 2003" est imprim´e.
1
5.
(a)Une classe peut impl´ementer plusieurs interfaces mais doit ´etendre une seule classe
(b) Une classe peut impl´ementer plusieurs classes mais doit ´etendre une seule interface
(c) Une classe peut impl´ementer plusieurs classes et peut ´etendre plusieurs interfaces
(d) Une classe doit impl´ementer une seule interface et ´etendre une seule classe
C"est comme ¸ca
6. La liaison tardive est essentielle pour assurer
(a) l"encapsulation
(b)le polymorphisme
(c) l"h´eritage
(d) la marginalisation
La marginalisation n"a rien `a voir avec la programmation. La liaison tardive dy-
namique permet d"utiliser pour chaque objet sa propre version d"une m´ethode (en
fonction de la classe de l"objet d´etermin´ee `a l"ex´ecution). Ceci permet d"obtenir un
code polymorphe.
7.
´Etant donn´e que la classe Grande ´etend la classe Petite, trouvez une ligne correcte parmi les
suivantes
(a)Petite y =new Petite(); Grande x= (Grande)y; Petite z=x;La deuxi`eme affectationGrande x= (Grande)y;essaye de transformer un objet
(r´ef´erenc´e par y) de la classePetitevers un objet de sa sous-classeGrande. Un
tel downcasting est impossible.
(b)Grande x= new Grande(); Petite y = x; Grande z=(Grande)y;Tout va bien. On cr´ee un objet de classeGrander´ef´erenc´e par x. Ensuite on fait
une variable y (de typePetite) r´ef´erencer le mˆeme objet - c"est un upcasting explicite
qui est toujours possible.`A la fin on fait encore une r´ef´erence z (cette foisGrande)
sur ce mˆeme objet. Ce dernier downcasting est possible parce que l"objet est en fait
une instance de la classeGrande.
(c)Grande x= new Grande(); Petite y = x; Grande z=y;C"est presque comme dans le cas pr´ec´edent, mais la derni`ere affectationGrande
z=(Grande)y;est un downcasting implicite, ce qui est interdit.
(d)Petite y =new Petite(); Grande x= (Grande)y; Petite z=(Petite)x;Grande x=(Grande)y;est un downcasting impossible, comme dans le (a).
2
8. Pour la classe C d´efinie comme suit:
class C{
public static int i;
public int j;
public C(){i++; j=i;}
}
qu"affichera le code suivant?
C x=new C(); C y=new C(); C z= x;
System.out.println(z.i + " et " + z.j);
(a) 2 et 2
(b) 1 et 1
(c)2 et 1
(d) 1 et 3
On remarque d"abord, que i est une variable (statique) de classe commune `a toutes
les instances, tandis que chaque objet de la classe a son propre j. Donc, apr`es
la premi`ere affectation on a i=1, x.j=1; apr`es la deuxi`eme: i=2, y.j=2 (x.j a rest´e
inchang´e et ´egal `a 1); la troisi`eme n"appelle pas le constructeur mais fait z r´ef´erencer
le mˆeme objet que x. D"o`u z.i est la valeur globale de i, c-`a-d2, et z.j=x.j=1.
9. Pour les classes A et B d´efinies comme suit:
class A{class B extends A{
public int x; public B(){x++;}
public A(){x=5;}public B(int i){this(); x=x+i;}
}public B(String s){super(); x- -;}
}
qu"affichera le code suivant?
B b1=new B(); B b2 =new B(2003); B b3= new B("Bonjour");
System.out.println(b1.x + " et " + b2.x + " et encore " + b3.x );
(a)6 et 2009 et encore 4
(b) 1 et 2004 et encore 4
(c) 1 et 2004 et encore 2003
(d) autre chose
Le constructeur B() n"appelle explicitement nithis(), nisuper(). Donc, par con-
vention, le constructeur de la super-classe A est appel´e (implicitement) avant de
proc´eder. Ceci donne b1.x=6. Le constructeur B(2003) appelle le constructeur
pr´ec´edent avec lethis(), ce qui donne b2.x=6. Ensuite on y ajoute 2003, ce qui
donne finalement b2.x=2009 Le constructeur B("Bonjour") appelle le constructeur
de la super-classe A avec lesuper(). Ceci donne b3.x=5. Ensuite on le decr´emente
et on a finalement b3.x=4.
3
10. Pour les classes Machin et Bidul d´efinies comme suit:
class Machin{class Bidul extends Machin{
public int f(){return(5)}; public int f(){return(2)};
public static int g(){return (6);}public static int g(){return (4);}
}}
qu"affichera le code suivant?
Bidul b=new Bidul(); Machin m =b;
System.out.println(m.f()*m.g());
(a) 30
(b) 20
(c) 8
(d)12La methode g est statique, la version utilis´ee est d´etermin´ee par le compilateur en
fonction du type de la r´ef´erence. Comme m est une r´ef´erenceMachin, m.g() - c"est
toujours la m´ethode g de la classeMachin(valeur 6). Pour f tout est diff´erent: sa
version utilis´ee est d´etermin´ee dynamiquement (`a l"execution)par la JVM en fonc-
tion du type de l"objet. Dans le cas de m.f(), m fait r´ef´erence `a une instance deBidul,
c"est donc la version de f red´efinie dans la classeBidulqui est invoqu´ee (valeur 2).
D"o`u la r´eponse.
4
TD n 5 - Correction - Normalesup.org Exercice 1 (Valeurs et références, surcharge). Qu'affiche le programme suivant ? 1 class A{. 2 private int val=0;. 3. 4 public static void incremente( int a){. 5 a++;.
Corrigé du TD de Java n°2 Dans cette partie, il faut réfléchir aux entêtes de certaines fonctions (quelles seront les paramètres de la fonction) et à leur valeur de retour. C'est un exercice? 
Exercices d'introduction orientée objet en Java : personnes ... Il est plus que conseillé de vous reporter au notes de cours qui vous ont été distrribuées ainsi qu'à l'aide sur les API Java. Exercice 1 Classe Personne ( 
Programmation Orientée Objet en Java (POO) - ReDCAD Concept Objet du langage Java. Classes et Objets en Java. Programmation orientée objet avancée Java. Les classes de bases. Exercices et corrigés 
Exercices de Programmation Orientée Objet en Java - MIS A quel affichage conduit l'exécution du programme (éventuellement corrigé)? class Test { int i;. Test(Test t) { if(t == null) this.i = 
Exercices corrigés de programmation OO Java - Technologue pro I. Avant de programmer en Java. Le JDK de Sun (Java Development Kit) est l'?outil essentiel pour programmer en Java. Il permet la compilation, le débogage et? 
Corrigés Exercice I-3 : Observer et comprendre la structure d'un programme Java. Corrigé public class Carre { // Donner un nom à la classe public static void main(String 
CORRIGÉ DES EXERCICES DE L'OUVRAGE La programmation orientée objet CORRIGÉ DES EXERCICES DE L'OUVRAGE Dans le code C#, et au contraire de Java, une méthode statique ne peut être appelée sur autre chose que la.
1 Corrigé de Examen Programmation par les Objets en Java ... - EMI Certaines corrections sont détaillées plus qu'il n'a été demandé. Exercice 1) Un fichier Salut.java contient le texte suivant class Salut { static public void main( 
TD : Compilation d'exercices et d'extraits d'examens S'il ne l'est pas proposez une correction. A.java. B.java public class A { public class B extends A{ public int 
TD 1 et 2 Java : La prise en main de Java et Eclipse, Eléments du ... Exercice 1 : Objectifs : Prise en main d'Eclipse. Durée 1H. Ecrire en Java un programme qui édite sur la console « Bonjour Monde ». A cette fin on utilisera 
Corrigés des premiers exercices sur les classes - Dept Info Cnam Vous mettrez le code java correspondant à cette question dans la méthode main d'une nouvelle classe appelée TesteCompte. Vous compilerez et testerez ce