Exercice Java POO sur les constructeurs

Question 1

Voici un programme qui illustre le comportement des constructeurs avec des appels au constructeur de la super-classe (super). Ce programme se focalise sur les constructeurs, il n’y a rien d’autre dans les classes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Premiere {
Premiere ( ) {
Terminal . ecrireStringln ( " constructeur du premiere");
}
}
class Seconde extends Premiere {
Seconde ( boolean b ) {
super ( ) ;
Terminal . ecrireStringln ( " constructeur de Seconde " ) ;
}
}
class Troisieme extends Premiere {
Troisieme ( int i ) {
super ( ) ;
Terminal . ecrireStringln ( "constructeur de Troisieme " ) ;
}
}
class Quatrieme extends Troisieme {
Quatrieme ( double d ) {
super ( 1 4 ) ;
Terminal . ecrireStringln ( " constructeur de Quatrieme " ) ;
}
}
class Exo19_1_1{
public static void main ( [ ] args ) {
new Pr emi e r e ( ) ;
Terminal . ecrireStringln ( "=============================" ) ;
new Seconde ( true ) ;
Terminal . ecrireStringln ( "=============================" ) ;
new Troisieme ( 1 5 ) ;
Terminal . ecrireStringln ( "=============================" ) ;
new Quatrieme ( 1 2 . 3 ) ;
}
}

1. dessinez le graphe d’héritage de ce programme, retraçant les relations d’héritage entre classes sans
oublier Object, la super-classe de Premiere.
2. prédisez ce que ce programme affiche.
3. compilez et exécutez ce programme pour vérifier vos prédictions.
4. y a-t-il un constructeur qui s’exécute sans afficher de message à la création de certains objets ?

Question 2{sidebar id=8}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Cinquieme extends Premiere {
Cinquieme ( ) {
Terminal . ecrireStringln ( "constructeur de Cinquieme " ) ;
}
}
class Sixieme extends Cinquieme {
Sixieme ( ) {
Te rmin a l . ecrireStringln ( "constructeur de Sixieme " ) ;
}
}
class Exo19_1_2{
public static void main ([ ] args ) {
new Cinquieme ( ) ;
Terminal . ecrireStringln ( "=============================" ) ;
new Sixieme ( ) ;
}
}

1. prédisez ce que ce programme affiche.
2. compilez et exécutez ce programme pour vérifier vos prédictions.

Question 3

Le programme suivant provoque une erreur à la compilation : la classe Huitieme est incorrecte

1
2
3
4
5
6
7
8
9
10
class Septieme ext nds Premiere {
Septieme ( int i ) {
Terminal . ecrireStringln ( " constructeur de Septieme " ) ;
}
}
class Huitieme extends Septieme {
Huitieme ( ) {
Terminal . ecrireStringln ( " constructeur de Huitieme " ) ;
}
}

Essayez de trouver l’erreur. Si vous n’y arrivez pas, essayez de compiler ce programme : le message
d’erreur peut vous mettre sur la voie.

Question 4{sidebar id=1}

1234567891011121314151617181920212223class Neuvieme extends Premiere {Neuvieme ( i n t i ) {Terminal.ecrireStringln ( " premier constructeur de Neuvieme " ) ;}Neuvieme ( boolean b ) {Te rminal.ecrireStringln(" second constructeur de Neuvieme " ) ;} }class Dixieme extends Neuvieme {Dixieme ( double d ) {super ( t rue ) ;Terminal . ecrireStringln ( " premie rconstructeur de Dixieme " ) ;}Dixieme ( int x , boolean y ) {super ( x ) ;Terminal . ecrireStringln ( " second constructeur de Dixieme " ) ;} }class Exo19_1_4{public static void main ( [ ] args ) {new Dixieme ( 1 0 . 5 ) ;Terminal . ecrireStringln ( "=============================" ) ;new Dixieme ( 4 5 , true ) ;}} 

1. prédisez ce que ce programme affiche.
2. compilez et exécutez ce programme pour vérifier vos prédictions.

Article publié le 18 Mars 2010 Mise à jour le Vendredi, 19 Mars 2010 20:44