Sur cette page
Un exemple concret
La classe CompteBancaire possède un attribut solde et une méthode deposer(montant). Si l'on écrit c = CompteBancaire(100) puis c.deposer(50), l'objet c, instance de la classe, a désormais un solde de 150. Un second compte créé avec la même classe garde son propre solde.
Le piège à éviter
Ne confonds pas classe et objet : la classe est le plan, l'objet est la réalisation concrète. Et n'oublie pas self comme premier paramètre des méthodes en Python, sinon l'appel provoque une erreur.
Pour aller plus loin
En Python, une classe se déclare avec le mot-clé class. La méthode __init__, appelée constructeur, s'exécute à la création de chaque objet et initialise ses attributs. Le paramètre self désigne l'objet en cours : écrire self.solde = solde crée un attribut propre à cette instance. Les autres méthodes reçoivent aussi self en premier paramètre, ce qui leur permet de lire et de modifier l'état de l'objet. On les appelle avec la notation pointée, par exemple c.deposer(50).
Le principal intérêt est l'encapsulation : les données et le code qui les manipule sont regroupés au même endroit, et l'utilisateur de la classe n'a besoin de connaître que son interface, c'est-à-dire la liste des méthodes. On peut ainsi changer l'implémentation interne, par exemple passer d'une liste à une liste chaînée, sans modifier le reste du programme. Le programme de Terminale se limite au vocabulaire de base : classe, attribut, méthode, objet, instance.
La POO est l'un des paradigmes étudiés en Terminale, à côté du paradigme impératif et du paradigme fonctionnel. Elle sert de support à l'implémentation des structures de données : une classe Pile, une classe File, une classe Noeud pour les arbres ou les listes chaînées. Les sujets de bac demandent souvent de compléter une classe, d'écrire une méthode, ou de prévoir l'affichage produit par une suite d'instructions qui créent et modifient des objets.
Ne pas confondre
- Classe et instance : La classe est le modèle commun ; l'instance est un objet précis créé à partir de ce modèle, avec ses propres valeurs d'attributs.
- Attribut et méthode : Un attribut est une donnée stockée dans l'objet ; une méthode est une fonction attachée à la classe qui agit sur cet objet.
- Paradigme fonctionnel : Il évite les effets de bord et privilégie les fonctions pures, alors que la POO s'appuie sur des objets dont l'état peut changer.
Dans ta copie
La programmation orientée objet consiste à structurer un programme autour d'objets créés à partir de classes. Une classe définit des attributs, qui représentent l'état de l'objet, et des méthodes, qui décrivent son comportement. Par exemple, une classe Voiture peut avoir un attribut vitesse et une méthode accelerer. Chaque objet créé est une instance indépendante de la classe. Ce paradigme favorise l'encapsulation : l'utilisateur manipule l'objet par ses méthodes sans avoir besoin de connaître le détail de son implémentation.
À retenir
- Une classe est un modèle, un objet est une instance de ce modèle.
- Les attributs décrivent l'état, les méthodes le comportement.
- En Python, __init__ initialise les attributs et self désigne l'objet courant.
- L'encapsulation sépare l'interface de l'implémentation.
Teste-toi
NSI · question corrigée
En Python, quelle méthode est appelée automatiquement à la création d'un objet ?
Voir la réponse
Réponse B. __init__ est le constructeur : elle initialise les attributs du nouvel objet.
NSI · question corrigée
Après p = Point(2, 3), que désigne l'expression p.x ?
Voir la réponse
Réponse B. La notation pointée sans parenthèses donne accès à un attribut de l'instance p.
Questions fréquentes
L'héritage est-il au programme ?
Le programme officiel de Terminale ne l'exige pas ; il se concentre sur les classes, les attributs, les méthodes et les objets. Certains manuels l'abordent toutefois en approfondissement.
Pourquoi self est-il obligatoire ?
En Python, une méthode reçoit l'objet sur lequel elle agit comme premier argument. Le nom self est une convention, mais ce premier paramètre est indispensable.
Notions liées
Pour réviser tout le chapitre, va sur la page NSI, ou retrouve toutes les définitions dans le lexique du bac. Dans l'application, les quiz reprennent ces notions sur le programme de ta série.