Partie 1 · Modéliser
L'approche objet : classes, héritage, polymorphisme
Dans l'exemple du cours (un logiciel de gestion de médiathèque), on transforme une structure de données manipulée par des fonctions en une entité autonome qui regroupe des propriétés cohérentes et leurs traitements : un objet.
- Un objet a une identité (un nom) et des frontières précises.
- Ses attributs caractérisent son état.
- Ses opérations (méthodes) définissent son comportement.
- Une classe est un type de données abstrait (propriétés communes) qui permet de créer des objets ; un objet est une instance de classe.
Une relation en base de données ressemble à une classe qui n'aurait que des attributs, chaque tuple étant une instance.
Vérifie que tu as compris
Quelle est la différence entre une classe et un objet ?
Quatre concepts clés
| Concept | Idée | Bénéfice |
|---|---|---|
| Encapsulation | Masquer les détails d'implémentation derrière une interface (les services offerts) | On peut changer l'implémentation sans casser les utilisateurs ; les données restent intègres (accès direct interdit) |
| Héritage | Une sous-classe reçoit attributs et méthodes de sa superclasse. Spécialisation (ajouter des caractéristiques) ou généralisation (factoriser). Simple ou multiple. | Évite la duplication, encourage la réutilisation |
| Polymorphisme | Une même opération s'exécute différemment selon la classe | Code plus générique |
| Agrégation | Les objets d'une classe sont des composants d'une autre | Assembler des objets simples en objets complexes |
Exemple du polymorphisme dans le cours : l'opération de calcul des salaires est définie dans une superclasse et s'exécute différemment pour les cadres et les non-cadres.
Vérifie que tu as compris
Dans le schéma, Cadre et NonCadre redéfinissent calculerSalaire(). Quel concept est illustré ?
Agrégation : une molécule d'eau est composée d'atomes d'hydrogène (deux) et d'oxygène (un).
Vérifie que tu as compris
« On peut modifier la façon de stocker un attribut sans changer le code qui utilise l'objet. » Quel concept ?