Programmation orientée objet

Définition, exemple concret, explications détaillées, piège à éviter et questions corrigées. NSI, niveau Terminale NSI.

💻 NSITerminale NSI
Sur cette page
  1. Un exemple concret
  2. Le piège à éviter
  3. Pour aller plus loin
  4. Ne pas confondre
  5. Dans ta copie
  6. À retenir
  7. Teste-toi
  8. Questions fréquentes
  9. Notions liées
DéfinitionLa programmation orientée objet (POO) est un paradigme qui organise un programme autour d'objets. Chaque objet est créé à partir d'une classe, qui décrit ses attributs (les données qu'il contient) et ses méthodes (les fonctions qui agissent sur ces données). Un objet est une instance de sa classe.

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.

Le matériel conseillé

Ce que je conseille pour compléter tes révisions sur RéviBac :

Liens sponsorisés. En tant que Partenaire Amazon, RéviBac réalise un bénéfice sur les achats remplissant les conditions requises.

Continue sur RéviBac

Des quiz corrigés et expliqués sur le programme officiel de ta série. Gratuit pour commencer.

Commencer gratuitement