Programmation orientée objet en Python
Introduction
La programmation orientée objet (POO) est un paradigme fondamental en informatique qui permet de structurer le code de manière plus modulaire et réutilisable. Dans ce chapitre, nous allons explorer les concepts clés de la POO en Python, tels que les classes, les objets, l'héritage et le polymorphisme. Ces notions sont essentielles pour développer des applications complexes et organisées, et elles sont largement utilisées dans l'industrie.
1. Les classes et les objets
1.1 Qu'est-ce qu'une classe ?
Une classe est un modèle qui définit un type d'objet. Elle regroupe des attributs (caractéristiques) et des méthodes (comportements) qui lui sont associés. En Python, une classe est définie à l'aide du mot-clé `class`.
1.2 Qu'est-ce qu'un objet ?
Un objet est une instance d'une classe. Lorsque nous créons un objet, nous utilisons la structure définie par la classe pour lui donner des valeurs spécifiques.
Exemple concret
Imaginons que nous souhaitons modéliser un étudiant. Nous pourrions créer une classe `Etudiant` comme suit :
```python
class Etudiant:
def __init__(self, nom, age):
self.nom = nom
self.age = age
def se_presenter(self):
print(f"Bonjour, je m'appelle {self.nom} et j'ai {self.age} ans.")
```
Ici, `__init__` est le constructeur de la classe, qui initialise les attributs de l'objet. Nous pouvons ensuite créer des objets :
```python
etudiant1 = Etudiant("Alice", 17)
etudiant1.se_presenter() # Affiche : Bonjour, je m'appelle Alice et j'ai 17 ans.
```
2. L'héritage
2.1 Qu'est-ce que l'héritage ?
L'héritage permet de créer une nouvelle classe à partir d'une classe existante. La nouvelle classe, appelée sous-classe, hérite des attributs et des méthodes de la classe parente, tout en pouvant ajouter ou modifier des fonctionnalités.
Exemple concret
Prenons notre classe `Etudiant` et créons une sous-classe `EtudiantBac` :
```python
class EtudiantBac(Etudiant):
def __init__(self, nom, age, mention):
super().__init__(nom, age)