SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsMouna Torjmen
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeurAbdelwahab Naji
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 
Qcm en-informatique-avec-correction
Qcm en-informatique-avec-correction Qcm en-informatique-avec-correction
Qcm en-informatique-avec-correction Jamal Yasser
 
Chapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfChapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfC00LiMoUn
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitésalah fenni
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombressalah fenni
 
résumé POO java .pdf
résumé POO java .pdfrésumé POO java .pdf
résumé POO java .pdfImaneZoubir1
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitresborhen boukthir
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du meriseYassine Badri
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Hichem Kemali
 

Tendances (20)

Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 Collections
 
Correction
CorrectionCorrection
Correction
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeur
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Qcm en-informatique-avec-correction
Qcm en-informatique-avec-correction Qcm en-informatique-avec-correction
Qcm en-informatique-avec-correction
 
Chapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfChapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdf
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivité
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombres
 
résumé POO java .pdf
résumé POO java .pdfrésumé POO java .pdf
résumé POO java .pdf
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitres
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Ch2_ la récursivité.pdf
Ch2_ la récursivité.pdfCh2_ la récursivité.pdf
Ch2_ la récursivité.pdf
 

En vedette

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
 

En vedette (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
 

Similaire à Qc mcorrige

Similaire à 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
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
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
 

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