La programmation orientée objet (POO, ou OOP en anglais) est un paradigme de programmation qui organise le code autour d'objets — des entités qui regroupent des données (attributs) et des comportements (méthodes).
C'est le paradigme dominant dans la plupart des langages modernes : Java, Python, C#, PHP, JavaScript, Ruby...
Les 4 piliers de l'OOP
| Pilier | Définition |
|---|---|
| Encapsulation | Regrouper données et méthodes, cacher les détails internes |
| Héritage | Une classe enfant hérite des propriétés d'une classe parent |
| Polymorphisme | Un même appel peut avoir des comportements différents selon l'objet |
| Abstraction | Exposer uniquement ce qui est nécessaire, masquer la complexité |
Exemple en Java
public class Voiture {
private String marque;
private int vitesse;
public Voiture(String marque) {
this.marque = marque;
this.vitesse = 0;
}
public void accelerer(int increment) {
this.vitesse += increment;
}
}
Voiture maVoiture = new Voiture("Toyota");
maVoiture.accelerer(50);
Exemple en Python
class Animal:
def __init__(self, nom):
self.nom = nom
def parler(self):
raise NotImplementedError
class Chien(Animal): # héritage
def parler(self): # polymorphisme
return f"{self.nom} dit : Woof!"
class Chat(Animal):
def parler(self):
return f"{self.nom} dit : Miaou!"
animals = [Chien("Rex"), Chat("Luna")]
for a in animals:
print(a.parler()) # même appel, comportement différent
À retenir
L'OOP favorise la réutilisabilité, la maintenabilité et la lisibilité du code. Elle s'oppose au paradigme procédural (suite d'instructions) et fonctionnel (transformations sans état). Des langages comme Java, C++, Python et C# sont conçus autour de ces principes, bien qu'ils supportent également d'autres paradigmes.
Voir aussi notre définition du Refactoring pour comprendre comment améliorer un code OOP existant.
