Vous êtes sur la page 1sur 2

A.

U: 2016/2017 Session ordinaire 07 Juin 2017

Filière: Bachelor en Génie Informatique Durée : 2H

Examen : Programmation orientée objet en Java

Exercice 1 [ 4 pts]
Considérons le programme suivant.
1. class A{ 14. public String h(){return super.h();}
2. public static int x=4; 15. }
3. public int y; 16. public class TestConstPolymor{
4. public A(){this(6);} 17. public static void main(String[] args){
5. public A(int x){A.x++;y=x;} 18. A a1 =new A(); A a2 =new B();
6. public static void f(A a1){A.x++;} 19. A.f(a1); a2.f(17);
7. public void f(int y){this.y=y;} 20. System.out.println(A.x +" "+a1.y +" "+a2.y);
8. public String g(){return "POO en Java";} 21. System.out.println(a1.g());
9. public String h(){return this.g();} 22. System.out.println(a2.h());
10. } 23. A a3=a1; A a4=a2;
11. class B extends A{ 24. System.out.println(A.x +" "+a3.y+" "+a4.y) ;
12. public B(){} 25. }
13. public String g(){return "POO en C++";} 26. }

1. Que va t-on obtenir à l’écran lors de l’exécution de ce programme?


2. Même question en ajoutant l’instruction "super(6);" au début du constructeur B().

Exercice 2 [ 3 pts]
Que va afficher le programme suivant à l’écran?

1. public class TestException{ 10. public static void f(int n) throws Exception{
2. public static void main(String args[]){ 11. try {if (n!=1) throw new Exception();}
3. int n=0 ; 12. catch (Exception e){
4. try {for (n=1;n<4;n++) 13. System.out.println ("catch dans f n="+n);
5. f(n); 14. throw new Exception();
6. } 15. }
7. catch(Exception e){System.out.println("catch dans main n="+n);} 16. finally System.out.println ("finally de f n="+n);
8. finally{System.out.println ("finally de main n="+n);} 17. }
9. } 18. }

1/2
2

Exercice 3 [ 9 pts]
Nous allons créer deux classes, l’une représentant une personne, une autre représentant un étudiant.
1. Créer une classe nommée Personne caractérisée par les membres suivants:
❐ Un attribut privé nommé "nom" de type String indiquant le nom d’une personne.
❐ Un attribut privé nommé "age" de type int désignant l’âge d’une personne.
❐ Un constructeur initialisant les deux attributs de la classe.
❐ Un constructeur vide (Personne()) appelant le constructeur de la question précédente et initia-
lisant respectivement les attributs nom et age à "votre nom" et "votre âge".
❐ Un constructeur de recopie (Personne(Personne p)) initialisant les attributs de la classe à ceux
de p.
❐ Un accesseur pour chaque attribut.
❐ Une méthode public static boolean egalite(Personne p1, Personne p2) qui teste l’égalité entre
les objets passés en paramètre.
❐ Une méthode afficher() qui permet d’afficher le nom et l’âge au format décrit ci-après.
. Nom : Votre nom
. Âge : Votre âge ans
❐ Une méthode afficher(boolean compact) qui affiche selon l’un des formats suivants.
– Si compact est égal à false, l’affichage est le même que celui de afficher().
– Si compact est égal à true, l’affichage d’un objet de nom égal à "votre nom" et d’âge égal à
"votre âge" sera de la forme: [Votre nom, Votre âge ans].
2. Créer une classe nommée Etudiant qui hérite de la classe Personne et disposant :
❐ D’un attribut privé nommé "fil" de type String indiquant la filière d’un étudiant.
❐ D’un constructeur initialisant les trois attributs de la classe.
❐ D’un constructeur ayant deux paramètres : une personne et la filière.
❐ D’une méthode public boolean egalite(Etudiant e) qui teste l’égalité entre l’objet auquel s’ap-
plique la méthode et l’objet passé en paramètre.
❐ D’une méthode afficher() qui appelle la méthode afficher() de la classe Personne pour afficher
les informations d’un étudiant.

Exercice 4 [ 4 pts]
Réaliser un programme Java qui affiche l’interface graphique suivante.

Bon Courage.
2/2

Vous aimerez peut-être aussi