SlideShare ist ein Scribd-Unternehmen logo
1 von 4
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: TableauInforMatica34
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018salah fenni
 
Lordinateur et-ses-composants4941
Lordinateur et-ses-composants4941Lordinateur et-ses-composants4941
Lordinateur et-ses-composants4941Ismail Bouyahya
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap IIInes Ouaz
 
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
 
TP Informatique 1 excel
TP Informatique 1 excelTP Informatique 1 excel
TP Informatique 1 excelZhour Add
 
Cours Internet - Messagerie électronique
Cours Internet - Messagerie électroniqueCours Internet - Messagerie électronique
Cours Internet - Messagerie électroniqueTunisie collège
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeWajihBaghdadi1
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: MatriceInforMatica34
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac Amri Ossama
 
Fiche1 ex-sous-programme
Fiche1 ex-sous-programmeFiche1 ex-sous-programme
Fiche1 ex-sous-programmeBaghdadi Wajih
 

Was ist angesagt? (20)

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
02 correction-td smi-s3-algo2
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: Tableau
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018
 
Lordinateur et-ses-composants4941
Lordinateur et-ses-composants4941Lordinateur et-ses-composants4941
Lordinateur et-ses-composants4941
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap II
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
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é
 
TP Informatique 1 excel
TP Informatique 1 excelTP Informatique 1 excel
TP Informatique 1 excel
 
Cours Internet - Messagerie électronique
Cours Internet - Messagerie électroniqueCours Internet - Messagerie électronique
Cours Internet - Messagerie électronique
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrige
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac
 
Fiche1 ex-sous-programme
Fiche1 ex-sous-programmeFiche1 ex-sous-programme
Fiche1 ex-sous-programme
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie Qc mcorrige

Trivial java First
Trivial java FirstTrivial java First
Trivial java FirstKatia Aresti
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java SecondKatia Aresti
 
Td serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageTd serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageAmel Morchdi
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
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.2Laurent BUNIET
 
POO - Chapitre6.pptx
POO - Chapitre6.pptxPOO - Chapitre6.pptx
POO - Chapitre6.pptxRAYENBOUAFIF1
 
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.5Laurent BUNIET
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzlesMicrosoft
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java SecondKatia Aresti
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 

Ähnlich wie 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
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
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
 

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