La programmation orientée objet (POO) est un paradigme central en NSI, surtout en Terminale. Tu dois comprendre comment créer des classes, instancier des objets, utiliser l'héritage et l'encapsulation. Pas de panique ! Cette checklist te guide pas à pas pour maîtriser la POO en Python. À la fin, tu sauras tout pour briller au bac.
1. Qu'est-ce que la POO ?
La POO est une façon d'organiser ton code en regroupant des données (attributs) et des fonctions (méthodes) dans des classes. Une classe est un modèle ; un objet est une instance de cette classe. Par exemple, une classe Etudiant peut avoir des attributs comme nom, note et des méthodes comme afficher_note().
2. Les piliers de la POO
2.1. Classe et constructeur
En Python, on définit une classe avec le mot-clé class. Le constructeur est la méthode __init__ qui initialise les attributs.
class Etudiant:
def __init__(self, nom, note):
self.nom = nom
self.note = note
def afficher_note(self):
print(f"{self.nom} a {self.note}/20")2.2. Instanciation
Créer un objet se fait comme ceci :
eleve = Etudiant("Alice", 15)
eleve.afficher_note() # Alice a 15/202.3. Encapsulation
L'encapsulation protège les attributs. En Python, on utilise un underscore (_) pour indiquer un attribut protégé, et deux underscores (__) pour un attribut privé. On accède via des getters et setters.
class CompteBancaire:
def __init__(self, solde):
self.__solde = solde
def get_solde(self):
return self.__solde
def deposer(self, montant):
self.__solde += montant2.4. Héritage
L'héritage permet de créer une classe fille à partir d'une classe mère. La fille hérite des attributs et méthodes.
class Lyceen(Etudiant):
def __init__(self, nom, note, classe):
super().__init__(nom, note)
self.classe = classe
def afficher_classe(self):
print(f"{self.nom} est en {self.classe}")3. Checklist POO pour le bac
Utilise cette checklist pour vérifier que tu maîtrises chaque concept :
- ✅ Définir une classe : syntaxe
class Nom: - ✅ Constructeur : méthode
__init__ - ✅ Attributs d'instance :
self.attribut - ✅ Méthodes : fonctions à l'intérieur de la classe
- ✅ Instanciation :
objet = Classe(args) - ✅ Encapsulation : attributs privés avec
__ - ✅ Héritage :
class Fille(Mere): - ✅ Redéfinition : surcharge de méthode
- ✅ Polymorphisme : même méthode, comportement différent
4. Exemple complet : système de gestion d'école
Voici un exemple qui combine tout :
class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
def se_presenter(self):
print(f"Je m'appelle {self.nom}, j'ai {self.age} ans.")
class Professeur(Personne):
def __init__(self, nom, age, matiere):
super().__init__(nom, age)
self.matiere = matiere
def enseigner(self):
print(f"{self.nom} enseigne {self.matiere}.")
class Etudiant(Personne):
def __init__(self, nom, age, note):
super().__init__(nom, age)
self.__note = note
def get_note(self):
return self.__note
def set_note(self, note):
if 0 <= note <= 20:
self.__note = note
else:
print("Note invalide")
# Utilisation
p = Professeur("M. Dupont", 45, "NSI")
e = Etudiant("Bob", 17, 14)
p.se_presenter()
p.enseigner()
e.se_presenter()
print(f"Note de Bob : {e.get_note()}")5. Pièges à éviter
- Oublier
selfdans les méthodes : c'est l'erreur la plus fréquente. - Confondre attributs de classe et d'instance : un attribut défini hors de
__init__est partagé par tous les objets. - Mauvaise utilisation de
super(): toujours l'appeler dans le constructeur de la classe fille. - Négliger l'encapsulation : ne pas exposer directement les attributs privés.
6. Lien avec l'épreuve du bac NSI
Au bac, la POO est souvent évaluée dans l'épreuve écrite et pratique. Tu peux tomber sur des questions de complétion de classe, d'analyse d'héritage ou d'écriture de méthodes. Pour t'entraîner, consulte nos exercices NSI et les cours dédiés. Si tu bloques sur des erreurs, la page erreurs Python t'aidera. Pour des révisions supplémentaires, jette un œil à AlloBac ou AlloLycée.
7. Conclusion
La POO est un outil puissant. Avec cette checklist et un peu de pratique, tu deviendras un as des classes et objets. N'oublie pas : chaque concept s'apprend par l'exemple. Alors ouvre ton IDE et code ! Bonne chance pour le bac, tu es prêt !
