🧱
Des plans et des objetsEn programmation orientée objet, une classe est un modèle qui regroupe des données (les attributs) et des actions (les méthodes). Par exemple, une classe `Voiture` peut avoir un attribut `vitesse` et une méthode `accelerer()`. Un objet est une instance concrète de cette classe : `Voiture maClio;` crée un objet `maClio` de type `Voiture`. Chaque objet possède ses propres valeurs d'attributs, mais partage la structure définie par la classe. Cette approche permet de modéliser le monde réel de manière naturelle.
📖 Définition
Une classe est un modèle qui définit des attributs (données) et des méthodes (actions) pour les objets.
🔍 Exemple
Une classe `Voiture` peut avoir l'attribut `vitesse` et la méthode `accelerer()` ; `Voiture maClio;` crée un objet.
💡 À retenir : Une classe est un moule, un objet est une réalisation concrète.
🔐
Protéger les donnéesL'encapsulation consiste à protéger les attributs en les rendant privés (`private`) et à fournir des méthodes publiques (`public`) pour y accéder. On utilise souvent un constructeur pour initialiser les attributs à la création de l'objet. Par exemple, `Voiture(int v) { vitesse = v; }` impose une vitesse initiale. Les méthodes `getVitesse()` et `setVitesse()` contrôlent les accès et évitent des valeurs incohérentes. Ce principe garantit l'intégrité des données et facilite la maintenance du code.
⭐ À retenir
Toujours déclarer les attributs en `private` et proposer des méthodes `public` pour y accéder.
📖 Définition
Un constructeur est une méthode spéciale appelée automatiquement à la création d'un objet, portant le nom de la classe.
💡 À retenir : Protéger les données et imposer des règles d'accès.
🧬
Réutiliser et spécialiserL'héritage permet de créer une classe fille à partir d'une classe mère, en réutilisant ses attributs et méthodes. En C++, on écrit `class VoitureElectrique : public Voiture { ... };`. La classe fille hérite des membres publics et protégés, et peut ajouter ses propres attributs comme `autonomie`. Elle peut aussi redéfinir une méthode héritée pour l'adapter à son comportement. L'héritage favorise la réutilisation du code et organise les classes en hiérarchies logiques.
📖 Définition
L'héritage est un mécanisme permettant à une classe fille de réutiliser les membres publics et protégés d'une classe mère.
🔍 Exemple
`class VoitureElectrique : public Voiture` hérite de `Voiture` et ajoute un attribut `autonomie`.
💡 À retenir : Une classe fille hérite des membres publics et protégés de sa classe mère.
🎭
Une interface, plusieurs comportementsLe polymorphisme permet à des objets de classes différentes d'être manipulés via une interface commune, avec des comportements adaptés. En C++, on déclare une méthode `virtual` dans la classe mère et on la redéfinit avec `override` dans les classes filles. Par exemple, une méthode `afficher()` peut être appelée sur un pointeur de type `Vehicule*` pointant vers une `Voiture` ou un `Camion`. C'est l'objet réel qui détermine la version exécutée, ce qui rend le code plus souple et extensible.
⭐ À retenir
En C++, le polymorphisme repose sur le mot-clé `virtual` dans la classe mère et `override` dans la classe fille.
🔍 Exemple
Un tableau de pointeurs `Vehicule*` peut contenir des `Voiture` et des `Camion` ; l'appel `afficher()` exécute la bonne version.
💡 À retenir : Avec le polymorphisme, c'est l'objet réel qui choisit la version de la méthode à exécuter.