Вы находитесь на странице: 1из 2

Université Moulay Ismail A.

U: 2015/2016
Faculté des Sciences de Meknès Filières: SMI-5/MA-5
Département de Mathématiques et Informatique 12 Janvier 2016

Programmation Orientée Objet (Java)


Session ordinaire Durée :1h 30min

Exercice 1 [5 pts]

1. Considérons le programme suivant.

1. class A1 { 11. public class TestConstructeur


2. public int x ; 12. {
3. public A1() {x=1 ;} 13. public static void main(String[] args)
4. public A1(int y) {x=y ;} 14. {
5. } 15. B1 b1 =new B1(12) ;
6.class B1 extends A1{ 16. B1 b2= new B1() ;
7. public B1() {} 17. B1 b3=new B1("POO") ;
8. public B1(int i){this() ; x=x*i ;} 18. System.out.println(b1.x+"/"+b2.x+"/"+b3.x) ;
9. public B1(String s){super(17) ;x- - ;} 19. }
10. } 20.}

(a) Que va t-on obtenir à l’écran lors de l’exécution de ce programme ?


(b) Même question en ajoutant l’instruction "super() ;" au début du constructeur B1() et en
supprimant l’instruction "this() ;" de la ligne 8.

2. Considérons le programme suivant.

1. class A2 { 8. A2 x=new A2() ;


2. public static int i ; 9. A2 y=new A2() ;
3. public int j ; 10. A2 z= x ;
4. public A2() {i++ ; j=i ;} 11. A2 t= y ;
5. } 12. System.out.println(A2.i + " et " + z.j) ;
6. public class TestStatique { 13. }
7. public static void main(String[] args){ 14.}

(a) Ce programme peut-il être compilé ? Si oui, qu’affiche-t-il ? Si non, pourquoi ?


(b) Même question en supprimant le mot-clé static de la ligne 2 et en remplaçant A2.i par z.i
et z.j par t.j.
(c) Combien d’instances de la classe A2 sont créées pendant l’exécution de ce programme ?

1/2
2
2
2 2

Exercice 2 [4 pts]

En utilisant les classes swing, réaliser un programme Java qui affiche l’interface graphique
suivante.

Exercice 3 [11 pts]

Les différentes formes géométriques sont définies à partir d’un ou plusieurs points. Autre-
ment dit, la class Point est la base de toutes les formes géométriques. Cette classe est caractérisée
par les membres suivants :
p Deux attributs privés x et y de type double.
p Un constructeur ayant deux paramètres (valeurs initiale de x et y).
p Un constructeur ayant un paramètre de type Point (copier un point dans un autre).
p Un accesseur (get) pour chaque attribut.
1. Créer une classe nommée Point.
2. Créer une classe abstraite nommée FormeGeo qui utilise la classe Point et disposant :
p D’un attribut privé o de type Point (origine de la forme).
p D’un constructeur ayant un paramètre de type Point (le point origine).
p D’un accesseur (get) de l’attribut o.
p D’une méthode distance(Point o, Point p) retournant la distance entre l’origine o et le
point p
p D’une méthode abstraite surface().
3. Créer une classe nommée Cercle qui hérite de la classe FormeGeo et disposant :
p D’un attribut privé r de type double (rayon du cercle).
p D’un constructeur ayant deux paramètres : un point et le rayon.
p D’une méthode surface() retournant la surface d’un cercle .
p D’une méthode afficher() affichant toutes les informations du cercle .
p D’une méthode statique plusGrand(Cercle c1, Cercle c2) retournant vrai si le cercle c1
est plus grand que c2
p D’une méthode contient(Point p) retournant vrai si un point est contenu dans un cercle.
4. Écrire un petit programme d’essai.

2/2 Bon Courage.

Вам также может понравиться