programmation Java (école d'ingénieur) · Chapitre 10 · Exercice de TD
Un orchestre
Classes abstraites et interfaces · niveau 2
Énoncé
Écrire une classe abstraite Instrument avec une méthode abstraite String son() et une méthode concrète String jouer(int n) qui renvoie le son répété fois, séparé par des tirets. Écrire Guitare (son « dzing ») et Tambour (son « boum »), le tambour encadrant en plus son morceau de crochets : [boum-boum-boum]. Faire jouer trois notes à un orchestre de deux guitares et un tambour.
Corrigé
abstract class Instrument {
abstract String son(); // chaque instrument a le sien
String jouer(int n) { // commun : répéter n fois le son
StringBuilder sb = new StringBuilder();
for (int k = 0; k < n; k++) {
if (k > 0) sb.append('-');
sb.append(son());
}
return sb.toString();
}
}
class Guitare extends Instrument {
@Override String son() { return "dzing"; }
}
class Tambour extends Instrument {
@Override String son() { return "boum"; }
@Override String jouer(int n) { return "[" + super.jouer(n) + "]"; }
}
Avec l'orchestre
Instrument[] orchestre = { new Guitare(), new Tambour(), new Guitare() };
et System.out.println(i.jouer(3)) pour chaque instrument i :
dzing-dzing-dzing
[boum-boum-boum]
dzing-dzing-dzing
Le tambour redéfinit jouer en s'appuyant sur la version héritée (super.jouer(n)), qui appelle elle-même son() : c'est bien « boum » qui est répété.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.