Vous êtes sur la page 1sur 2

INSA Centre Val de Loire

Année 2023–2024
Département STI

Programmation Orientée Objet

Cours-démo: héritage

Ceci est la trame de la démo qui sera faite ensemble en cours le 29 mars; il peut être
intéressant mais n’est pas obligatoire de tenter de le faire au préalable: il est toutefois conseillé
de le lire pour réfléchir aux solutions proposables. Pour cette démo, on reprendra le code de
Safe et Gemstone fait en TD. Une implémentation sera rendue disponible sur celene peu avant
la séance.
Exercice 1 : Protégeons un peu notre coffre...
En plus de Coffres classiques, on souhaite pouvoir utiliser des coffres avec code. Un tel
coffre possède une combinaison qui sera requise pour son ouverture.

• Comment le faire intelligemment? 1

• Proposer une classe SafeWithCode, surchargez et redéfinissez les méthodes pertinentes.


Note: cela a été abordé dans les supports de cours et les solutions ne devrait être une
surprise pour personne pour le moment.

Exercice 2 : Et l’évaluatione dans tout ça?


L’évaluation d’une pierre n’est pour le moment pas implémentée. Pour simplifier, on peut se
dire qu’il existera plusieurs type de pierres (diamant, émeraude, topaze) le prix (et son calcul)
dépendant de la nature de la pierre.
On ne sait donc pas, au niveau de Gemstone, comment expertiser: on sait uniquement que
cette méthode doit être implémentée plus tard en fonction du type de pierre.

• Proposer un concept Java pertinent pour la situation.

• Modifiez la classe Gemstone en conséquence.

• Proposer une implémentation de diamant et émeraude valant respectivement 100 et 10 fois


leur volume.

• Expliquer les erreurs apparaissant dans la classe de test et la mettre à jour.

• Mettre à jour le diagramme UML.

Exercice 3 : Tout est Objet...

• Deux gemstones de même valeur et nature pourraient être vues comme égales...Comment
faire? Le faire en suivant les bonnes pratiques.

• Peut-on afficher nos gemmes de manière plus lisible (i.e. faire en sorte d’avoir une sortie
lisible lorsque la méthode print est appelée avec une gemme en argument)? Le faire.
1
Au vu de la thématique abordée ici, probablement avec un peu d’héritage
Exercice 4 : Il n’y a pas de petit profit...
Et si nous vendions nos coffres et pierres? Remarquons que ces deux classes ont des valeurs
accessibles avec getValue. Considérons un client capable d’acheter tout objet (du moment qu’il
a une valeur) dont la valeur n’excède pas son budget.
Comment modifier notre conception de sorte que les coffres et les pierres soient identifiés
comme des objets ayant une valeur?

Vous aimerez peut-être aussi