NSI (terminale) · Chapitre 9 · Exercice d'entraînement
Une horloge encapsulée
La programmation orientée objet · Objets, attributs et encapsulation · niveau 2
Énoncé
Une horloge encapsulée. On veut une classe Horloge représentant une heure de la journée (de 00:00 à 23:59). L'état interne est stocké dans un unique attribut « privé » _minutes : le nombre de minutes écoulées depuis minuit.
- Écrire le constructeur
__init__(self, h=0, m=0)et un mutateurregler(h, m)qui lève uneValueErrorsi l'heure est invalide. - Écrire les accesseurs
heures()etminutes(), puis une méthode__str__renvoyant l'heure au formathh:mm(par exemple09:05). - Écrire une méthode
avancer(duree)qui fait avancer l'horloge dedureeminutes (entier positif ou nul), en repassant par minuit si nécessaire. - Pourquoi un programme utilisateur ne doit-il jamais écrire
h._minutes = 2000?
Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.