AccueilLycée Terminale GénéraleSpé NSIProgrammation orientée objet en Python
💻Lycée Terminale GénéraleSpé NSI

Programmation orientée objet en Python

Cours complet de Spé NSI pour le Lycée Terminale Générale. Révise efficacement avec StudentAI.

Points clés à retenir

  • 1La programmation orientée objet (POO) repose sur quatre concepts fondamentaux : l'encapsulation, l'héritage, le polymorphisme et l'abstraction, permettant de structurer le code de manière modulaire et réutilisable.
  • 2Une classe en Python est un modèle qui définit des attributs et des méthodes, tandis qu'un objet est une instance de cette classe, permettant de créer des entités spécifiques avec des comportements définis.
  • 3L'encapsulation consiste à restreindre l'accès direct aux attributs d'une classe en utilisant des modificateurs d'accès, comme les attributs privés (précédés d'un underscore) pour protéger les données sensibles.
  • 4L'héritage permet de créer une nouvelle classe qui hérite des attributs et méthodes d'une classe existante, favorisant la réutilisation du code et la création de hiérarchies entre les classes.
  • 5Le polymorphisme en POO permet d'utiliser une même interface pour des classes différentes, ce qui signifie que des objets de différentes classes peuvent être traités de manière uniforme, facilitant ainsi l'extension du code.

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. La POO facilite également la maintenance et l'évolution du code, ce qui est crucial dans le cadre de projets de grande envergure.

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`. Les classes permettent de créer des structures de données complexes et de représenter des concepts du monde réel dans le code.

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. Chaque objet peut avoir des attributs différents, même s'ils sont basés sur la même classe.

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.
```

Mini-exercice


Créez une classe `Livre` qui a pour attributs `titre` et `auteur`. Ajoutez une méthode `afficher_info` qui affiche les informations du livre. Créez ensuite un objet de cette classe et affichez ses informations.

#### Correction
```python
class Livre:
def __init__(self, titre, auteur):
self.titre = titre
self.auteur = auteur

def afficher_info(self):
print(f"Titre : {self.titre}, Auteur : {self.auteur}")

livre1 = Livre("1984", "George Orwell")
livre1.afficher_info() # Affiche : Titre : 1984, Auteur : George Orwell
```

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. Cela permet de réutiliser du code et de créer des hiérarchies de classes.

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)
self.mention = mention

def se_presenter(self):
super().se_presenter()
print(f"J'ai obtenu la mention {self.mention}.")
```
Nous pouvons créer un objet de `EtudiantBac` :
```python
etudiant_bac = EtudiantBac("Bob", 18, "Bien")
etudiant_bac.se_presenter() # Affiche : Bonjour, je m'appelle Bob et j'ai 18 ans. J'ai obtenu la mention Bien.
```

Cas pratique


Supposons que nous souhaitions modéliser des étudiants de différentes filières. Créez une classe `EtudiantScientifique` qui hérite de `Etudiant`, avec un attribut supplémentaire `specialite`. Ajoutez une méthode `se_presenter` qui affiche la spécialité de l'étudiant.

#### Correction
```python

Accède au cours complet gratuitement

Tableaux récapitulatifs, mnémotechniques, exercices corrigés, QCM et colle orale IA — tout est inclus.

S'inscrire gratuitement

Autres chapitres — Spé NSI

Prêt à réviser ton Lycée Terminale Générale ?

QCM illimités, colle orale IA, flashcards et bien plus — 100% gratuit.

Commencer à réviser