Introduction POO

Programmation Orientée Objet

🦊

Introduction à la Programmation Orientée Objet (POO)

1. Qu'est-ce que la POO ?

La Programmation Orientée Objet (POO) est un paradigme de programmation (une manière de penser et de structurer le code).

Au lieu de penser uniquement en termes de fonctions et de procédures (programmation impérative/procédurale), on pense en termes d'objets.

Définition : Objet

Un objet est une entité qui regroupe :

  • Des attributs (données/variables) qui le caractérisent.
  • Des méthodes (fonctions/actions) qu'il peut effectuer.

2. Les Classes : Le "Moule" des Objets

Pour créer des objets, on définit d'abord une classe. Une classe est un plan, un modèle ou un "moule" qui définit la structure et le comportement des futurs objets.

Exemple : La classe Voiture

Imaginons que nous voulons représenter des voitures.

class Voiture:
    # Le constructeur (__init__) est appelé à la création de l'objet
    def __init__(self, immatriculation, marque, modele, annee, couleur):
        # Initialisation des attributs
        self.immatriculation = immatriculation
        self.marque = marque
        self.modele = modele
        self.annee = annee
        self.couleur = couleur
        self.est_demarre = False # Attribut avec valeur par défaut
    
    # Méthode spéciale pour l'affichage (print)
    def __str__(self):
        return f"Voiture {self.immatriculation} : {self.marque} {self.modele}"

    # Une méthode (action) pour démarrer
    def demarrer(self):
        self.est_demarre = True
        print(f"La voiture {self.immatriculation} démarre.")

    # Une méthode pour arrêter
    def arreter(self):
        self.est_demarre = False
        print(f"La voiture {self.immatriculation} s'arrête.")
Vocabulaire essentiel
  • class Voiture: : Définit la classe. Par convention, le nom commence par une majuscule.
  • __init__ : Le constructeur. Méthode spéciale exécutée automatiquement à la création d'une instance.
  • self : Représente l'objet lui-même (l'instance courante) à l'intérieur de la classe. Il permet d'accéder aux attributs et méthodes de l'objet.
  • self.attribut = valeur : Définit un attribut pour l'objet.

3. Créer et Utiliser des Objets (Instanciation)

Une fois la classe définie, on peut créer des objets concrets. On appelle cela l'instanciation.

# 1. Création d'objets (Instances)
ma_clio = Voiture("AB-123-CD", "Renault", "Clio", 2020, "Bleu")
ta_peugeot = Voiture("XY-999-ZZ", "Peugeot", "208", 2022, "Rouge")

# 2. Accès aux attributs
print(ma_clio.couleur)      # Affiche : Bleu
print(ta_peugeot.annee)     # Affiche : 2022

# 3. Appel des méthodes
ma_clio.demarrer()          # Affiche : La voiture AB-123-CD démarre.
print(ma_clio.est_demarre)  # Affiche : True

ta_peugeot.arreter()        # Affiche : La voiture XY-999-ZZ s'arrête.

4. Pourquoi utiliser la POO ?

AvantageDescription
OrganisationRegroupe logiquement les données et les traitements liés.
RéutilisabilitéUne classe peut être utilisée pour créer une infinité d'objets.
ModularitéChaque objet est indépendant. On peut modifier le fonctionnement interne d'une classe sans casser tout le programme.
AbstractionOn utilise des objets complexes (comme voiture.demarrer()) sans avoir besoin de connaître tous les détails mécaniques internes.