Vous êtes sur la page 1sur 27

Test

Réponses

Programmation orientée objet Java

Novembre 2008
Question 1
1. Soit les classes suivantes :
Package P1 Package P2

public class A{ public class C extends A{


int a; …
public int b; }
private int c;
protected int d;
}

Package P3 : Sous Package P1


public class B{

}

Pour la classe B : b
Pour la classe C : b,d
Question 2
 En quoi le code ci-dessous est-il incorrect?

int [ ] tab; // tableau d'entiers


for (int i=0; i < 10 ; i++) {
tab[i]=0;
}

int [ ] tab = new int[10];


Question 3
 Soit la classe
1. public class Test1 {
2. public float maMethod (float a, float b) {
3. }
4.
5. }

Lesquelles des méthodes suivantes pourraient être ajoutées


(individuellement) à la ligne 4?
 A. public int maMethod (int a, int b) {}
B. public float maMethod (float a, float b) {}
 C. public float maMethod (float a, float b, int c) throws Exception {}
D. public float maMethod (float c, float d) {}
 E. private float maMethod (int a, int b, int c) {}
 F. private float maMethod (int a, int b) {}
Question 4
 Soit la définition de classe suivante :
1. public class Test extends Base {
2. public Test (int j) {
3. }
4. public Test (int j, int k) {
5. super(i,j);
6. }
7. }
 Quelles forme de constructeur parmi les suivantes doivent-
elles être explicitement présentes dans la définition de la
classe Base
A. Base() {}
B. Base (int j) {}
 Base (int j, int k) {}
A. Base (int j, int k, int l) {}
Question 5
 Quel est le résultat du code suivant :
public class Pass{
static int j = 20;
public static void main (String args[]){
int i = 10;
Pass p = new Pass ();
p.maMethod ( i );
System.out.println ( i );
System.out.println ( j );
}
public void maMethod ( int x ){
x = x * 2; Résultat :
j = j * 2;
} 10
}
40
Question 6
 Étant donné la définition suivante de classe, qui
des méthodes suivantes pourrait être également
placée après le commentaire

public class Test {


public void Method (int i, String s) {}
//ici}
 public void Method (String s, int i){}
A. public int Method (int i, String s){}
B. public void Method (int i, String mystring){}
 public void AMethod (int i, String s) {}
Question 7
 Soit :
1. interface Base {
2. boolean m1 ();
3. int m2(int s);
4. }

 Quel est le fragment de code qui compilera?


A. interface Base2 implements Base { }
B. abstract class Class2 extends Base {
public boolean m1() { return true; } }
C. abstract class Class2 implements Base { }
D. abstract class Class2 implements Base {
public boolean m1() { return (true); } }
 class Class2 implements Base {
public boolean m1() { return false; }
public int m2(int s) { return 42; } }
Question 8
 Parmi les instructions suivantes lesquels sont valides?

A. "X extends Y" Est possible ssi X est une classe et Y est une
interface.
B. "X extends Y" Est possible ssi Y est une classe et X est une
interface.
 "X extends Y" Est possible si X et Y les deux sont des
classes ou des interfaces
A. "X extends Y" Est possible pour toutes combinaison de X et
Y soit des classes et/ou des interfaces
Question 9
 Quelles sont les déclarations légales :

 int x [ ];
A. int [ ] y;
 int [5] x2;
A. int z2 [5];
 int [ ] z [ ] [ ];
A. int [ ] y2 = [5];
Question 10
class Base {
public final void methode() { System.out.println("Base"); }
}
public class Sub extends Base {
public void methode() {
System.out.println("Classe Sub");
super.methode();
}
public static void main(String [] args) {
new Sub();
A. Classe Sub
}}
B. Base
C. Base
 Quel est le résultat ?
Classe Sub
D. Classe Sub
Base
 E. Erreur de compilation.
Question 11
 Soit:
class Top {
public Top(String s) { System.out.print("B"); }
}
public class Bottom extends Top {
public Bottom (String s) { System.out.print("D"); }
public static void main(String [ ] args) {
new Bottom ("C");
System.out.println(" ");
}}
 Quel est le résultat ?
A. BD
B. DB
C. BDC
D. DBC
 Erreur de compilation.
Question 12
 Soit:
1. class Plante {
2. String getName() { return "plante"; }
3. Plante getType() { return this; }
4. }
5. class Fleur extends Plante {
6. // ici
7. }
8. class Tulipe extends Fleur { }
 Parmi ces propositions, la (es) quelle(s) s'insère (ent) à la ligne
6, permettra (ont) au code de compiler ?

A. Fleur getType() { return this; }


B. String getType() { return "this"; }
 Plante getType() { return this; }
A. Tulipe getType() { return new Tulipe(); }
Question 13
 Soit:
public class Calcul {
public int compte(int x) {
int r = 1; Quel est le résultat ?
r += x; A. 45
if ((x > 4) && (x < 10)) { B. 56
r += 2 * x; C. 89
} else (x <= 4) { D. 111
r += 3 * x;  Erreur de compilation
} else { A. une exception est levée
r += 4 * x;
}
r += 5 * x;
return r;
}
public static void main(String [] args) {
Calcul c = new Calcul();
System.out.println(c.compte(11));
}}
Question 14
 Soit:
1. class A {
2. public static void main(String [] args) {
3. int x = 0;
4. // ici
5. do { } while (x++ < y);
6. System.out.println(x);
7. }
8. }
 Qu'elle instruction, ajoutée à la ligne 4, produit le résultat 12 ?
A. int y = x;
B. int y = 10;
 int y = 11;
A. int y = 12;
B. int y = 13;
C. aucune instruction.
Question 15
 Soit:
class Base {
String methode(int x) { return "bonjour"; }
}
 Quelle méthode ne serait pas légale dans une sous-classe de
Base?
A. String methode(int x) { return " bonjour "; }
 int methode(int x) { return 42; }
A. public String methode (int x) {return "Bonjour ";}
B. protected String methode (int x) {return "Bonjour ";}
C. String methode (String s) {return "Bonjour ";}
D. int methode (String s) {return 42 ;}
Question 16
 Les quelles de ces affirmations sont vraies sur les
constructeurs?

A. Les constructeurs ne doivent pas avoir des arguments si la


mère n'a pas de constructeur avec des arguments.
B. Les constructeurs ne sont pas hérités.
C. Les constructeurs ne peuvent pas être surchargé.
 La première déclaration de chaque constructeur est un
appel légal à super () ou this() .
Question 17
 Comment vous indiquer où un composant sera
positionné en utilisant Flowlayout?

A. North, South,East,West;
B. Attribution row/column de la grille de référence;
C. Passer un X / Y pourcentage paramètre à la
méthode add;
 Ne rien faire, le FlowLayout positionnera la
composante
Question 18
 Les quelles de ces affirmations sont vraies ?

 Un objet de Type ResultSet est créer à partir d'un objet


de type Connection
A. Un objet de Type ResultSet permet de savoir le nombre
de lignes récupérer de la base via la méthode getRows()
 Un objet de type ResultSet contient le résultat d'une
requête "select"
A. Un objet de type ResultSet permet de créer un objet de
Type Statement.
Question 19
 Quelle est le droit d'accès le plus restrictive pour
donner l'accès aux membres d'une autre classe de
même package.

A. public
B. abstract
C. protected
D. synchronized
 default access
Question 20
 Combien d’instances de la classe A crée le code suivant?
A x,y,z;
x=new A();
y=x;
z=new A();

A. Aucune
B. Cinq
C. Trois
 Deux
Question 21
 Pour la classe B définie comme suit:
class B {
public B(){System.out.print(”Groupe”);}
public B(int i) {this(); System.out.println(”GCR ”+i);}
}
 Qu’affichera l’instruction suivante?
B monB=new B(2);

A. erreur de compilation
B. erreur d’exécution
 GroupeGCR2
A. GCR 2
Question 22
 Une classe peut implémenter plusieurs interfaces
mais doit étendre une seule classe
A. Une classe peut implémenter plusieurs classes
mais doit étendre une seule interface
B. Une classe peut implémenter plusieurs classes et
peut étendre plusieurs interfaces
C. Une classe doit implémenter une seule interface et
étendre une seule classe
Question 23
 Soit la classe C définie 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
 2 et 1
A. 1 et 3
Question 24
 Qu'affiche ce programme ?
public class Test4 {
public static void method(){
System.out.println("Appel"); }
public static void main(String[] args){
Test4 t4 = null;
t4.method(); } }

 "Appel"
A. Erreur de compilation
B. Erreur d'exécution
C. Rien
Question 25
class Sup{
public Sup(String str){
System.out.println("Super class");
}
}
public class Test2 extends Sup{
public Test2(){
System.out.println("Sub class"); }
public static void main(String[] args) {
Test2 t2 = new Test2(); }
}

A. Super class,SubClass
B. Super class
C. Sub class
 Erreur de compilation
FIN