Programmation orientée objet (POO)

NSI Terminale

Définition

La programmation orientée objet (POO) est un paradigme qui structure un programme autour d'objets, regroupant des données (attributs) et des comportements (méthodes). Une classe est un modèle décrivant la structure et le comportement d'objets ; chaque objet créé à partir d'une classe est une instance. Le constructeur (`__init__` en Python) initialise les attributs lors de la création d'une instance. La POO favorise l'encapsulation, la réutilisation du code et la modélisation proche du monde réel.

Exemple corrigé

Énoncé

Définir une classe `Cercle` avec un attribut `rayon` et une méthode `aire()` renvoyant l'aire du cercle, puis créer un cercle de rayon 3 et afficher son aire.

Solution

On définit une classe avec un constructeur `__init__` qui stocke le rayon dans un attribut, et une méthode `aire()` qui utilise la formule $\mathcal{A} = \pi r^2$.

```python
import math

class Cercle:
def __init__(self, rayon): # constructeur
self.rayon = rayon # attribut

def aire(self): # méthode
return math.pi * self.rayon ** 2

c = Cercle(3) # instanciation : c est une instance de Cercle
print(c.aire()) # 28.274333882308138
```

L'objet `c` est une instance de la classe `Cercle` ; son attribut `rayon` vaut 3. L'appel `c.aire()` calcule :
$$\mathcal{A} = \pi \times 3^2 = 9\pi \approx 28{,}27$$

$$\boxed{\mathcal{A} \approx 28{,}27 \text{ unités d'aire}}$$

Erreurs classiques

  • Oublier le paramètre `self` dans la définition des méthodes, ou oublier de préfixer les attributs par `self.`.
  • Confondre la classe (le modèle) et l'instance (l'objet concret créé avec `Classe(...)`).

Pour aller plus loin : le chapitre « Langages et programmation » (cours et exercices corrigés).

Toutes les notions