Un téléphone est un objet
Il a des caractéristiques (marque, couleur, niveau de batterie) et il sait faire des choses (appeler, prendre une photo, se recharger). En POO, les caractéristiques s'appellent des attributs, les actions des méthodes.
Comprendre ce qu'est un objet, pourquoi la POO est née, et ce qu'elle apporte par rapport à la programmation procédurale vue en algorithmique.
Une auto-école de Meknès gère ses élèves avec un programme écrit en procédural : une liste pour les noms, une autre pour les heures de conduite, une troisième pour les résultats au code. Chaque fois qu'on ajoute une information, il faut modifier dix fonctions et on finit par mélanger les listes. La programmation orientée objet propose une autre façon de ranger le code : chaque élève devient un objet qui garde ensemble ses données et ce qu'on peut faire avec.
En procédural, les données des élèves sont rangées dans des listes séparées : les noms d'un côté, les heures de l'autre.
En algorithmique, vous avez écrit des programmes procéduraux : des variables d’un côté, des fonctions de l’autre, et un programme principal qui appelle les fonctions dans l’ordre. Ça marche très bien pour un petit programme.
Quand le projet grossit, les données et les fonctions qui les manipulent se retrouvent dispersées. La programmation orientée objet (POO) les regroupe.
Un objet représente une chose du problème : un élève, une voiture, une facture. Il possède :
Une classe est le modèle qui décrit ces attributs et ces méthodes. À partir d’une classe, on crée autant d’objets qu’on veut : on les appelle des instances.
| Année | Langage | Apport |
|---|---|---|
| 1967 | Simula | premières classes et objets, pour des simulations |
| 1972 | Smalltalk | « tout est objet », envoi de messages |
| 1985 | C++ | objets ajoutés au langage C |
| 1991 | Python | objets simples à écrire, langage polyvalent |
| 1995 | Java | POO au cœur du langage, très utilisée en entreprise |
Aujourd’hui, la plupart des langages que vous croiserez (Python, Java, C#, PHP, JavaScript) permettent la POO.
Dans ce module, on programme en Python. Les quatre piliers de la POO (encapsulation, héritage, polymorphisme, abstraction) arrivent dans les leçons suivantes.
Il a des caractéristiques (marque, couleur, niveau de batterie) et il sait faire des choses (appeler, prendre une photo, se recharger). En POO, les caractéristiques s'appellent des attributs, les actions des méthodes.
Chaque stagiaire remplit le même formulaire, mais avec ses propres réponses. Le formulaire vierge, c'est la classe ; chaque formulaire rempli, c'est un objet.
class Stagiaire: # le formulaire vierge
pass
salma = Stagiaire() # un formulaire rempli
youssef = Stagiaire() # un autre Listez trois attributs et trois méthodes d'un objet « compte bancaire ».
Un attribut répond à « qu'est-ce qu'il a ? », une méthode à « qu'est-ce qu'il fait ? ».
Attributs : numéro, titulaire, solde Méthodes : déposer(montant), retirer(montant), afficher_solde()
Pour chaque situation, dites si l'approche objet apporte un vrai avantage : (1) un script de 10 lignes qui convertit des dirhams en euros ; (2) une application de gestion d'une pharmacie avec produits, clients, ordonnances et factures.
1. Non : un petit script procédural suffit. 2. Oui : beaucoup d'entités (produit, client, ordonnance, facture) avec leurs données et leurs règles. Les regrouper en classes rend le code plus clair, réutilisable et facile à faire évoluer.
Choisissez un objet de votre quotidien (lampe, ascenseur, distributeur de billets...). Décrivez-le comme une classe : nom, 3 attributs, 3 méthodes.
Classe Distributeur Attributs : billets_disponibles, banque, en_service Méthodes : lire_carte(), verifier_code(code), donner_billets(montant)