Introduction à la Programmation Orientée Objet Les objets Abstraction Caractéristiques fondamentales des objets Communication entre objets Interface et encapsulation Le chaos des objets Notion d’objet et de classe Représentation graphique des classes Représentation graphique des objets Hiérarchie de classes Généralisation Spécialisation Propriétés de la généralisation Héritage © BTS IRIS 2003 [tv]
1 . Les objets Les objets du monde réel nous entourent, ils naissent, vivent et meurent … Les objets informatiques définissent une représentation simplifiée des entités du monde réel. Identifier les abstractions est l’activité la plus importante du développement orienté objet.
2 . Abstraction Les objets sont des abstractions. Une abstraction est un résumé, un condensé qui permet : la mise en avant des caractéristiques essentielles la dissimulation des détails Une abstraction se définit par rapport à un point de vue.
3 . Caractéristiques fondamentales des objets Le comportement Allumer Régler le temps de cuisson Régler la puissance Régler l’heure Un objet Le comportement décrit les actions et les réactions d’un objet Le comportement regroupe toutes les compétences d’un objet Le comportement peut se représenter sous la forme d’opérations appelées méthodes ou fonctions membres L’état Fiche technique 900W 23*45 cm blanc L’état regroupe les valeurs instantanées de tous les attributs d’un objet L’état évolue au cours du temps L’état d’un objet à un instant donné est la conséquence de ses comportements passés L’état et le comportement sont liés : Le comportement dépend de l’état L’état est modifié par le comportement 11:35 L’identité Celui au-dessus de mon frigo Tout objet possède une identité qui lui est propre et qui le caractérise L’identité permet de distinguer tout objet de façon non ambiguë, indépendamment de l’état.
4 . Communication entre objets Application = société d'objets collaborants Les objets travaillent en synergie afin de réaliser les fonctions de l’application. Le comportement global d’une application repose donc sur la communication entre les objets qui la composent. Donc : Un objet peut faire appel aux compétences d’un autre objet. Les objets interagissent les uns avec les autres.
5 . Interface et Encapsulation Les méthodes auxquelles ont accès les autres objets forment l’interface de l’objet avec les autres objets On distinguera alors : Les méthodes publiques : accessibles aux autres objets Les méthodes privées : accessibles uniquement au sein de l’objet En POO (Programmation Orientée Objet) pure, on réalise l’encapsulation : Les attributs sont privés et donc inaccessibles autres objets L’accès et la modification d’un attribut ne peut se faire que par le biais des méthodes
6 . Le chaos des objets Le monde qui nous entoure est constitué de très nombreux objets. Pour comprendre le monde, l’être humain a tendance à regrouper les éléments qui se ressemblent. Regrouper des objets suivants des critères de ressemblance s’appelle classer. Les humains ont classé les animaux, les plantes, les champignons, les atomes, ...
7 . Notion d’objet et de classe Chaque objet a sa propre identité, même s’il est possible de le décrire par les mêmes propriétés qu’un autre objet lui ressemblant. Donc, le terme objet est vague, parfois : il correspond à une « chose » unique. Il vaut mieux parler d’instance il correspond à une famille ou à un ensemble de choses. Il vaut mieux parler de classe. Une classe définit donc un groupe d’objets qui ont : les mêmes propriétés (attributs) un comportement commun (opérations ou méthodes) des relations communes avec d’autres objets La classe est une description abstraite d’un ensemble d’objets
8 . Représentation graphique des classes
9 . Représentation graphique des objets Un objet 1 Moi:MaClasse Le nom de l’instance Le nom de la classe 1 :MaClasse Un objet anonyme
10 . Hiérarchie de classes Gérer la complexité : Généralisation : Arborescences de classes d’abstraction croissante Généralisation : Super-classes Spécialisation : Sous-classes
11 . Généralisation Factoriser les éléments communs : attributs, opérations et contraintes La généralisation signifie toujours : est un ou est une sorte de
12. Spécialisation Extension cohérente d'un ensemble de classes : réutilisation du code déjà écrit ajout de nouvelles fonctionnalités (ne pas retirer des opérations dans la classe dérivée)
13. Propriétés de la généralisation Impossible ! Impossible ! Possible ! B Généralisation multiple
14. L’héritage Technique la plus utilisée pour réaliser la généralisation Héritage : La sous classe possède tous les attributs, comportement et relations de la super classe.