0% ont trouvé ce document utile (0 vote)
24 vues3 pages

Revision Java

Le document présente des exercices de révision en programmation orientée objet, incluant des questions sur la sortie d'un programme Java et des compilations de classes. Il aborde également la création de classes avec des constructeurs, des exceptions, et des méthodes spécifiques. Enfin, il demande de créer des classes avec des variables d'instance et des méthodes pour gérer des exceptions et des comparaisons.

Transféré par

balkisb231
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues3 pages

Revision Java

Le document présente des exercices de révision en programmation orientée objet, incluant des questions sur la sortie d'un programme Java et des compilations de classes. Il aborde également la création de classes avec des constructeurs, des exceptions, et des méthodes spécifiques. Enfin, il demande de créer des classes avec des variables d'instance et des méthodes pour gérer des exceptions et des comparaisons.

Transféré par

balkisb231
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercices de Révision pour DLSIADBD

Exercice 1
L'exercice consiste seulement à deviner la sortie du programme ci-dessous (la
méthode main de la classe EssaiConstructeurs)

class A {
A() {
System.out.println("bonjour de A");
}
}

class B extends A {
boolean verite;
int valeur;

B() {
System.out.println("constructeur B()");
}

B(int valeur) {
this();
this.valeur = valeur;
System.out.println("constructeur B(int)");
}

B(boolean verite) {
this.verite = verite;
System.out.println("constructeur B(boolean)");
}

B(boolean verite, int valeur) {


this(valeur);
this.verite = verite;
System.out.println("constructeur B(boolean, int)");
}

public String toString() {


return "B : (" + verite + ", " + valeur +")\n";
}
}

class EssaiConstructeurs {
public static void main(String[] argv) {
B b = new B(true);
System.out.println(b);
b = new B(false, 5);
System.out.println(b);
}
}

Exercice 2
1) Est-ce que les classes suivantes compilent ? justifier
1. class Animal1 {
2. void makeNoise() {System.out.println("generic noise"); }
3. }
4. class Dog extends Animal1 {

1
5. void makeNoise() {System.out.println("bark"); }
6. void playDead() { System.out.println(" roll over"); }
7. }

8. class CastTest2 {
9. public static void main(String [] args) {
10. Animal1 [] a = {new Animal1(), new Dog(), new Animal1() };
11. for(Animal1 animal : a) {
12. animal.makeNoise();
13. if(animal instanceof Dog) {
14. animal.playDead();
15. }
16. }
17. }
18. }

……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
2) Si on modifie les instructions 13 et 14 par les instructions suivantes :
13. if(animal instanceof Dog) {
14. Dog d = (Dog) animal; // casting
15. d.playDead();
16. }

Est-ce que la classe castTest2 compile?


……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
3) Si on efface la ligne 13, est ce que le code compile ?
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………

Problème

Ecrire une classe Exercice qui a une variable enonce de type string et une variable n
de type entier qui sera incrémenté de 1 à chaque création d’un instance. Cette classe
a un constructeur qui initialise la variable enonce et l’additionne à « exercice » + n
et une méthode toString qui retourne enonce.

Ecrire une classe Revision qui hérite de Exercice et :

- A deux variables d’instance : Theme, String et niveau, entier.


- déclare deux constructeurs :
o un sans paramètres donnant les valeurs : on commence pour enonce et 0 pour
n. initialise thème à « tous » et niveau à 0.

2
o un avec paramètres pour initialiser les variables d’instance. Le constructeur
propage une exception du type ExceptionRevision signalant une erreur avec
le message " incorrect! thème doit être « polymorphisme », « operateurs » ou
« exception » " si la chaîne est différente de « polymorphisme »,
« opérateurs » et « exception » et une exception avec le message " incorrect!
niveau doit être 1 ou 2 " si le niveau est différent de 1 et 2.
- A une méthode initialiser qui doit créer et retourner une instance Revision. elle
accepte au clavier une chaîne pour theme, une chaîne pour enonce et un nombre
pour niveau. Cette méthode ne traite aucune exception.
- A une méthode equals qui permet de retourner true si deux instances revision ont
le même thème et le même niveau
- Une méthode toString
- Une méthode main qui crée deux instances de type Revision à l’aide de la méthode
initialiser, les affichent, les comparent et affichent le résultat de comparaison. La
méthode main doit traiter les exceptions s’il y’en a, en cas ou une exception est
capturée, un message expliquant l’exception doit être affichée et le programme
doit s’arrêter.

Vous aimerez peut-être aussi