SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
QCM de Java corrig´
                                                 e
1. Java est un langage
    (a)    Compil´
                 e
    (b)    Interpr´t´
                  ee
    (c)    Compil´ et interpr´t´
                 e           ee
    (d)    Ni compil´ ni interpr´t´
                    e           ee
           Le compilateur compile le code source vers un bytecode, la machine virtuelle Java
           (JVM) interpr`te ce bytecode
                         e
2. Java est un langage d´velopp´ par
                        e      e
    (a)    Hewlett-Packard
    (b)    Sun Microsystems
    (c)    Microsoft
    (d)    Oracle
           Par James Gosling chez Sun.
3. Combien d’instances de la classe A cr´e le code suivant?
                                        e
  A x,u,v;
  x=new A();
  A y=x;
  A z=new A();

    (a)    Aucune
    (b)    Cinq
    (c)    Trois
    (d)    Deux
           Il y a deux instances de A cr´´es par les deux new, la premi`re est r´f´renc´e par x
                                        ee                             e        ee     e
           et y, la deuxi`me par z.
                         e
4. Pour la classe B d´finie comme suit:
                     e
  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´cution
                      e
    (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´menter plusieurs interfaces mais doit ´tendre une seule classe
                               e                                      e
     (b)   Une classe peut impl´menter plusieurs classes mais doit ´tendre une seule interface
                               e                                   e
     (c)   Une classe peut impl´menter plusieurs classes et peut ´tendre plusieurs interfaces
                               e                                 e
     (d)   Une classe doit impl´menter une seule interface et ´tendre une seule classe
                               e                              e
           C’est comme ¸a
                       c
6. La liaison tardive est essentielle pour assurer
     (a)   l’encapsulation
     (b)   le polymorphisme
     (c)   l’h´ritage
              e
     (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´thode (en
                                                                                     e
           fonction de la classe de l’objet d´termin´e a l’ex´cution). Ceci permet d’obtenir un
                                             e      e `      e
           code polymorphe.
   ´
7. Etant donn´ que la classe Grande ´tend la classe Petite, trouvez une ligne correcte parmi les
             e                      e
   suivantes
     (a)   Petite y =new Petite(); Grande x= (Grande)y; Petite z=x;
           La deuxi`me affectation Grande x= (Grande)y; essaye de transformer un objet
                    e
           (r´f´renc´ par y) de la classe Petite vers un objet de sa sous-classe Grande. Un
             ee     e
           tel downcasting est impossible.
     (b)   Grande x= new Grande(); Petite y = x; Grande z=(Grande)y;
           Tout va bien. On cr´e un objet de classe Grande r´f´renc´ par x. Ensuite on fait
                                 e                              ee      e
           une variable y (de type Petite) r´f´rencer le mˆme objet – c’est un upcasting explicite
                                            ee            e
                                      `
           qui est toujours possible. A la fin on fait encore une r´f´rence z (cette fois Grande)
                                                                   ee
           sur ce mˆme objet. Ce dernier downcasting est possible parce que l’objet est en fait
                    e
           une instance de la classe Grande.
     (c)   Grande x= new Grande(); Petite y = x; Grande z=y;
           C’est presque comme dans le cas pr´c´dent, mais la derni`re affectation Grande
                                              e e                       e
           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´finie comme suit:
                     e
  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`s       e
           la premi`re affectation on a i=1, x.j=1; apr`s la deuxi`me: i=2, y.j=2 (x.j a rest´
                    e                                     e           e                           e
           inchang´ et ´gal a 1); la troisi`me n’appelle pas le constructeur mais fait z r´f´rencer
                   e e      `              e                                              ee
           le mˆme objet que x. D’o` z.i est la valeur globale de i, c-`-d 2, et z.j=x.j=1.
                e                     u                                 a
9. Pour les classes A et B d´finies comme suit:
                            e
  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 ni this(), ni super(). Donc, par con-
           vention, le constructeur de la super-classe A est appel´ (implicitement) avant de
                                                                  e
           proc´der. Ceci donne b1.x=6. Le constructeur B(2003) appelle le constructeur
               e
           pr´c´dent avec le this(), ce qui donne b2.x=6. Ensuite on y ajoute 2003, ce qui
             e e
           donne finalement b2.x=2009 Le constructeur B(”Bonjour”) appelle le constructeur
           de la super-classe A avec le super(). Ceci donne b3.x=5. Ensuite on le decr´mente
                                                                                      e
           et on a finalement b3.x=4.




                                                    3
10. Pour les classes Machin et Bidul d´finies comme suit:
                                      e
   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)    12
            La methode g est statique, la version utilis´e est d´termin´e par le compilateur en
                                                          e        e      e
            fonction du type de la r´f´rence. Comme m est une r´f´rence Machin, m.g() - c’est
                                     ee                              ee
            toujours la m´thode g de la classe Machin (valeur 6). Pour f tout est diff´rent: sa
                           e                                                              e
            version utilis´e est d´termin´e dynamiquement (` l’execution)par la JVM en fonc-
                          e        e      e                     a
            tion du type de l’objet. Dans le cas de m.f(), m fait r´f´rence a une instance de Bidul,
                                                                   ee       `
            c’est donc la version de f red´finie dans la classe Bidul qui est invoqu´e (valeur 2).
                                           e                                          e
            D’o` la r´ponse.
                u     e




                                               4

Más contenido relacionado

La actualidad más candente

Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Ch3 algebreboole
Ch3 algebrebooleCh3 algebreboole
Ch3 algebreboolemickel iron
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1vangogue
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 ExceptionsMouna Torjmen
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Faycel Chaoua
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseLilia Sfaxi
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classeIlhem Daoudi
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURIMansouri Khalifa
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôleAbdelouahed Abdou
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
 

La actualidad más candente (20)

Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Ch3 algebreboole
Ch3 algebrebooleCh3 algebreboole
Ch3 algebreboole
 
Cours java
Cours javaCours java
Cours java
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
 
Les algorithmes de tri
Les algorithmes de triLes algorithmes de tri
Les algorithmes de tri
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Ch2_ la récursivité.pdf
Ch2_ la récursivité.pdfCh2_ la récursivité.pdf
Ch2_ la récursivité.pdf
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 

Destacado

French Project
French ProjectFrench Project
French Projectcesca188
 
Informatica educativa
Informatica educativaInformatica educativa
Informatica educativaoswaldobaez
 
Present prueba
Present pruebaPresent prueba
Present pruebajesuscabo
 
Diapositivas de 102
Diapositivas de 102Diapositivas de 102
Diapositivas de 102gpool-scout
 
Presentación power point
Presentación power pointPresentación power point
Presentación power pointchaves52
 
Evolución de estos materiales.actividadsemana1
Evolución de estos materiales.actividadsemana1Evolución de estos materiales.actividadsemana1
Evolución de estos materiales.actividadsemana1Elsa Janeth Cortes Camelo
 
Procédure
ProcédureProcédure
Procédurefastoph
 
Presentacion lina araujo
Presentacion lina araujoPresentacion lina araujo
Presentacion lina araujo49700451
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerraFelipe Tovar
 
Curso de Email Marketing 201506
Curso de Email Marketing 201506Curso de Email Marketing 201506
Curso de Email Marketing 201506Bernardo Martinez
 
Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012
Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012
Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012Le Hibou
 
Ensayo n maiz inta 2011
Ensayo n maiz inta 2011Ensayo n maiz inta 2011
Ensayo n maiz inta 2011NUTRIX S.A.
 
Trabajo pràctico nº2 tcs urdiro quiroz
Trabajo pràctico nº2 tcs urdiro quirozTrabajo pràctico nº2 tcs urdiro quiroz
Trabajo pràctico nº2 tcs urdiro quirozdeboquiroz
 
Marcel presentacion
Marcel presentacionMarcel presentacion
Marcel presentacionmateranooo
 

Destacado (20)

French Project
French ProjectFrench Project
French Project
 
Informatica educativa
Informatica educativaInformatica educativa
Informatica educativa
 
Present prueba
Present pruebaPresent prueba
Present prueba
 
Diapositivas de 102
Diapositivas de 102Diapositivas de 102
Diapositivas de 102
 
Presentación power point
Presentación power pointPresentación power point
Presentación power point
 
Evolución de estos materiales.actividadsemana1
Evolución de estos materiales.actividadsemana1Evolución de estos materiales.actividadsemana1
Evolución de estos materiales.actividadsemana1
 
Procédure
ProcédureProcédure
Procédure
 
El elefante sumiso
El elefante sumisoEl elefante sumiso
El elefante sumiso
 
Diapositivas vih sida
Diapositivas vih sidaDiapositivas vih sida
Diapositivas vih sida
 
Lectura1
Lectura1Lectura1
Lectura1
 
Pop
PopPop
Pop
 
La mujer ..
La mujer ..La mujer ..
La mujer ..
 
Taller n° 2b
Taller n° 2bTaller n° 2b
Taller n° 2b
 
Presentacion lina araujo
Presentacion lina araujoPresentacion lina araujo
Presentacion lina araujo
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
 
Curso de Email Marketing 201506
Curso de Email Marketing 201506Curso de Email Marketing 201506
Curso de Email Marketing 201506
 
Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012
Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012
Newsletter #18 - Le Hibou Agence .V. du 17 aout 2012
 
Ensayo n maiz inta 2011
Ensayo n maiz inta 2011Ensayo n maiz inta 2011
Ensayo n maiz inta 2011
 
Trabajo pràctico nº2 tcs urdiro quiroz
Trabajo pràctico nº2 tcs urdiro quirozTrabajo pràctico nº2 tcs urdiro quiroz
Trabajo pràctico nº2 tcs urdiro quiroz
 
Marcel presentacion
Marcel presentacionMarcel presentacion
Marcel presentacion
 

Similar a Qc mcorrige

Similar a Qc mcorrige (20)

Trivial java First
Trivial java FirstTrivial java First
Trivial java First
 
Trivial Java - Part 1
Trivial Java - Part 1Trivial Java - Part 1
Trivial Java - Part 1
 
Trivial Java - Part 2
Trivial Java - Part 2Trivial Java - Part 2
Trivial Java - Part 2
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java Second
 
Td serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageTd serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritage
 
2006 2007-heritage-en-c++
2006 2007-heritage-en-c++2006 2007-heritage-en-c++
2006 2007-heritage-en-c++
 
Cours c++
Cours c++Cours c++
Cours c++
 
Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2
 
POO - Chapitre6.pptx
POO - Chapitre6.pptxPOO - Chapitre6.pptx
POO - Chapitre6.pptx
 
Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5
 
Clonage d'objets
Clonage d'objetsClonage d'objets
Clonage d'objets
 
Ch10
Ch10Ch10
Ch10
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java Second
 
Part1
Part1Part1
Part1
 
Memo java
Memo javaMemo java
Memo java
 
Héritage et redéfinition de méthode
Héritage et redéfinition de méthodeHéritage et redéfinition de méthode
Héritage et redéfinition de méthode
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
 
cours2.ppt
cours2.pptcours2.ppt
cours2.ppt
 

Qc mcorrige

  • 1. QCM de Java corrig´ e 1. Java est un langage (a) Compil´ e (b) Interpr´t´ ee (c) Compil´ et interpr´t´ e ee (d) Ni compil´ ni interpr´t´ e ee Le compilateur compile le code source vers un bytecode, la machine virtuelle Java (JVM) interpr`te ce bytecode e 2. Java est un langage d´velopp´ par e e (a) Hewlett-Packard (b) Sun Microsystems (c) Microsoft (d) Oracle Par James Gosling chez Sun. 3. Combien d’instances de la classe A cr´e le code suivant? e A x,u,v; x=new A(); A y=x; A z=new A(); (a) Aucune (b) Cinq (c) Trois (d) Deux Il y a deux instances de A cr´´es par les deux new, la premi`re est r´f´renc´e par x ee e ee e et y, la deuxi`me par z. e 4. Pour la classe B d´finie comme suit: e 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´cution e (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
  • 2. 5. (a) Une classe peut impl´menter plusieurs interfaces mais doit ´tendre une seule classe e e (b) Une classe peut impl´menter plusieurs classes mais doit ´tendre une seule interface e e (c) Une classe peut impl´menter plusieurs classes et peut ´tendre plusieurs interfaces e e (d) Une classe doit impl´menter une seule interface et ´tendre une seule classe e e C’est comme ¸a c 6. La liaison tardive est essentielle pour assurer (a) l’encapsulation (b) le polymorphisme (c) l’h´ritage e (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´thode (en e fonction de la classe de l’objet d´termin´e a l’ex´cution). Ceci permet d’obtenir un e e ` e code polymorphe. ´ 7. Etant donn´ que la classe Grande ´tend la classe Petite, trouvez une ligne correcte parmi les e e suivantes (a) Petite y =new Petite(); Grande x= (Grande)y; Petite z=x; La deuxi`me affectation Grande x= (Grande)y; essaye de transformer un objet e (r´f´renc´ par y) de la classe Petite vers un objet de sa sous-classe Grande. Un ee e tel downcasting est impossible. (b) Grande x= new Grande(); Petite y = x; Grande z=(Grande)y; Tout va bien. On cr´e un objet de classe Grande r´f´renc´ par x. Ensuite on fait e ee e une variable y (de type Petite) r´f´rencer le mˆme objet – c’est un upcasting explicite ee e ` qui est toujours possible. A la fin on fait encore une r´f´rence z (cette fois Grande) ee sur ce mˆme objet. Ce dernier downcasting est possible parce que l’objet est en fait e une instance de la classe Grande. (c) Grande x= new Grande(); Petite y = x; Grande z=y; C’est presque comme dans le cas pr´c´dent, mais la derni`re affectation Grande e e e 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
  • 3. 8. Pour la classe C d´finie comme suit: e 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`s e la premi`re affectation on a i=1, x.j=1; apr`s la deuxi`me: i=2, y.j=2 (x.j a rest´ e e e e inchang´ et ´gal a 1); la troisi`me n’appelle pas le constructeur mais fait z r´f´rencer e e ` e ee le mˆme objet que x. D’o` z.i est la valeur globale de i, c-`-d 2, et z.j=x.j=1. e u a 9. Pour les classes A et B d´finies comme suit: e 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 ni this(), ni super(). Donc, par con- vention, le constructeur de la super-classe A est appel´ (implicitement) avant de e proc´der. Ceci donne b1.x=6. Le constructeur B(2003) appelle le constructeur e pr´c´dent avec le this(), ce qui donne b2.x=6. Ensuite on y ajoute 2003, ce qui e e donne finalement b2.x=2009 Le constructeur B(”Bonjour”) appelle le constructeur de la super-classe A avec le super(). Ceci donne b3.x=5. Ensuite on le decr´mente e et on a finalement b3.x=4. 3
  • 4. 10. Pour les classes Machin et Bidul d´finies comme suit: e 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) 12 La methode g est statique, la version utilis´e est d´termin´e par le compilateur en e e e fonction du type de la r´f´rence. Comme m est une r´f´rence Machin, m.g() - c’est ee ee toujours la m´thode g de la classe Machin (valeur 6). Pour f tout est diff´rent: sa e e version utilis´e est d´termin´e dynamiquement (` l’execution)par la JVM en fonc- e e e a tion du type de l’objet. Dans le cas de m.f(), m fait r´f´rence a une instance de Bidul, ee ` c’est donc la version de f red´finie dans la classe Bidul qui est invoqu´e (valeur 2). e e D’o` la r´ponse. u e 4