Aller au contenu
L'encapsulation : protéger l'étatChapitre 7/8

Le solde à -1000

Reprends le compte bancaire du chapitre 5. Rien n'empêche un programme d'écrire directement dans l'attribut, sans passer par les méthodes :

compte = CompteBancaire("Alice")
compte.deposer(50)
compte.solde = -1000   # aucune erreur !

Essaie : dépose, retire (le retrait est refusé si le solde ne suffit pas), puis utilise le champ rouge « écrire directement ». La méthode retirer vérifie, mais l'écriture directe passe par-dessus toutes les règles.

Fabriquer un objet :CompteBancaire()
aliceobjet de la classe CompteBancaire
titulaire"Alice"
solde0
)
)
)
alice.solde =
Le programme équivalent
alice = CompteBancaire("Alice")
AttentionDans une vraie banque, le solde ne change que par des opérations contrôlées (dépôt, retrait, virement), chacune enregistrée et vérifiée. Jamais un employé ne tape un nouveau solde à la main. C'est ce qu'on veut reproduire.
Programme complet du cours de programmation orientée objet (8 chapitres, gratuit)
  1. 1. Pourquoi des objets ? : Le problème qu'on cherche à résoudre : des données éparpillées dans des variables et des dictionnaires, et l'idée de regrouper l'état et les actions dans un seul objet.
  2. 2. Classe et objet : Le plan et ce qu'on fabrique avec : écrire une classe avec class, instancier des objets, et découvrir que int, str et list sont des classes.
  3. 3. Les attributs : l'état d'un objet : Donner des données à un objet avec le point, les lire, les modifier, et comprendre ce qui se passe quand deux variables désignent le même objet.
  4. 4. Le constructeur : __init__ et self : Remplir un objet dès sa fabrication : la méthode __init__, le paramètre self, les arguments donnés à la classe et les attributs à valeur fixe.
  5. 5. Les méthodes : les actions d'un objet : Écrire les actions d'un objet dans sa classe : méthodes qui affichent, qui modifient l'état, qui renvoient une valeur, et ce que fait vraiment p.saluer().
  6. 6. Des objets qui travaillent ensemble : Un objet en paramètre d'une méthode, un attribut qui est une liste d'objets (le panier et ses produits), et une première structure : la pile.
  7. 7. L'encapsulation : protéger l'état : Empêcher qu'on mette un solde à -1000 : vérifications dans les méthodes, attributs privés avec _ et __, accesseurs et mutateurs, interface et implémentation.
  8. 8. La totale : une bibliothèque de prêt : Un mini-projet guidé qui utilise tout le cours : classes Livre et Bibliotheque, attributs privés, objets qui en contiennent d'autres, et un guichet qui lit au clavier.