Documente Academic
Documente Profesional
Documente Cultură
QCM 2
1) Combien dinstances de la classe A crera le code suivant?
A x,y,z; x=new A(); y=x; z=new A();
QCM 3
1) Les attributs static peuvent tre
(a) Dclarer private (b) Utiliser sans aucune instanciation de la classe (c) (a) et (b) (d) Aucune des deux
QCM 4
Pour la classe B dfinie comme suit: class B { public B(){System.out.print(Bonjour );}; public B(String nom) { this(); System.out.println( c'est moi +nom);} }
1) Quaffichera linstruction suivante: B monB=new B('' java '')? (a) erreur de compilation (b) erreur dexcution (c) c'est moi java Bonjour (d) Bonjour c'est moi java 2) la syntaxe super.super.x est impossible en java (a) Faux (b) vrai
QCM 4
class ClasseA { double x ; } class ClasseB extends ClasseA { int x ; } class ClasseC extends ClasseB { char x ; }
1) Dans une mthode de la ClasseC, quelle variable est dsigne par x : (utiliser 1: double x 2: int x 3: char x)
3 3 2 3 3
(c) super.x :
QCM 5
class ClasseA{... public void affiche(){ System.out.println("je suis un objet de ClasseA") ;} } class ClasseB extends ClasseA{... public void affiche(){ System.out.println("je suis un objet de ClasseB"); } } 1) Quel est le rsultat de l'excution du programme suivant ? public class ClasseTest{ public void main(String [] args) { ClasseA a = new ClasseB() ; a.affiche() ; }}
(a) je suis un objet de ClasseA (b) je suis un objet de ClasseB
QCM 6
1) Indiquer l'affirmation correcte:
(a) La surcharge correspond avoir des mthodes de mme nom mais de profils diffrents dans une mme classe (b) La redfinition correspond avoir deux mthodes de mme nom et de mme profils dans deux classes hrits (c) Les deux phrase sont fausses.
Mthode final
Si une mthode est dclare final, celle-ci ne peut pas tre redfinie
(a) Vrai (b) Faux
Classe final
Si une classe A est dclare final, il est impossible de crer des sous-classes hritant de A
(a) Vrai (b) Faux
Rponse (a), mais pour quoi? Mmes raisons que pour les mthodes
Hritage Multiple
(b) Faux
Rponse (b) car si l'on hrite de deux mthodes ayant mme signature dans deux super classes, quelle code doit-on choisir ? Performance en cas de sous-typage
Il n'y a pas d'hritage multiple en Java Est-il possible d'muler l'hritage multiple? Si oui par qu'il moyenne? Java dfinit des interfaces et permet une classe d'implment plusieurs interfaces Une interface dfinit un type sans code
Interface
Est-Il possible dinstancier une interface? Pour quoi? Non, car l'interface ne dfinie pas le code de ses mthodes
Implantation d'interface
Comment peut-on implment un interface java? Par la dclaration d'une classe qui fournira le code pour l'ensemble des mthodes abstraites
Quiz
@override permet de: (a) Gnrer la documentation de mthode (b) D'indiquer au compilateur de gnrer une erreur si une mthode ne redfinit pas une autre (c) D'indiquer au compilateur de gnrer une erreur si une mthode ne recharge pas une autre (d) Aucune de ces affirmations.
Quiz
Indique si le code suivant compile ou non? public interface Constants{ public static int MAX_SIZE= 100; public static String ok= ''OK''; } (a) compile (b) Erreur de compilation
Quiz
Laquelle des instructions suivantes est correcte? a) variable sous-classe = variable super-classe ; b) variable super-classe = variable sous-classe ; Rponse (b), car les sous classes hritent par transitivit les types des super classes.
Quiz
Considrons la hirarchie de classes suivante:
solution
Cannot resolve symbol symbol : variable langage location: class Cours System.out.print(cours[i].langage);
Le compilateur voit que cours[i] est dclae comme un Cours, Il nest donc pas sr que langage existe pour lobjet
Code correct : if (cours[i] instanceof Pratique) System.out.print(((Pratique)cours[i]).langage);
Quiz
class SousClasse extends SuperClasse { class ExplicitCast { int v; public static void main(String[] args) { SousClasse() { SuperClasse sup = new SousClasse(); super(); SousClasse sous; } sous = sup; // ok faux void m1() { sous = (SousClasse)sup; // ok faux } } m2(sup); // ok faux m2((SousClasse)sup); // ok faux System.out.print(sup.v); // ok faux System.out.print(((SousClasse)sup).v); // ok faux sup.m1(); // ok faux ((SousClasse)sup).m1(); // ok faux } static void m2 (SousClasse sous2) { } }
Dans : | A | B | C | D | E | --------------------------------------------------------------------ChampPubl | oui | oui | oui | oui | oui | champProt | oui | oui | oui | oui | - | ChampDef | oui | --- | oui | oui | - | ChampPriv | oui | --- | --- | --- | --- |