Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMicheline Salle Modifié depuis plus de 9 années
1
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression des langages de codage C’est une question de vocabulaire !
2
La Modélisation Orientée Objet Modélisation fonctionnelle et chronologique Algorithmique, SDD Outils : Organigramme (temporel) Parfois des structures (orienté données) Des modules thématiques (fonctionnel)
3
Méthodes de modélisation Années 80 : foisonnement de méthodes Booch, Rumbaugh, JacobsonUML
4
Modélisation Objet Responsabilité des "composants" informatiques du programme Se placer au bon niveau d’abstraction Notions basiques de l’informatique : Bas-niveau Outils associés
5
Modélisation Objet En C : modélisation algorithmique En C++ : expression explicite de la modélisation objet. Attacher les données et les opérations associées : extension de la notion de module
6
Modélisation Objet Un objet a un état Se modifie par le biais de comportements Génériques (afficher, saisir,…) Spécifiques (selon le type d’objet)
7
Modélisation Objet L’encapsulation : protection des données En lecture seule Accès par comportement : contrôle d’intégrité et de cohérence
8
Modélisation Objet État : Date / heure Comportement : Afficher l’heure Avancer l’heure Reculer l’heure
9
Modélisation Objet Point de vue utilisateur : interface « ce que l’objet fait » Point de vue programmeur : implémentation « comment il le fait »
10
Modélisation Objet L’interface : entête des fonctions, prototype L’implémentation : organisation des données + définition des fonctions Interface = comportement Implémentation = gestion des états
11
Modélisation Objet Interface montre : void afficher_heure(void); void avancer_heure(entier, entier, entier); void reculer_heure(entier, entier, entier); Implémentation montre : DateTime heure_courante;
12
Structure et Classe Rappel : module en C Dans un fichier.h d’entête but : exportation pour link : considération technique fichier destiné à être publié : définition des types (struct) prototype des fonctions exportées (mode d’emploi) Dans un fichier.c de code fichier non publié : définition des fonctions (implémentation)
13
Structure et Classe Défauts des modules : Données exposées (publiées dans le fichier.h) Fonctions « ouvertes » et non associées aux variables (association faible par paramètre) Classes en C++ : type d’objet Un objet est une instance de classe Une structure est un type de variable
14
Classe Les instances d’une même classe partagent : La structure de leurs données (définition de type), mais pas les valeurs Les fonctions sont associées aux classes : méthodes les objets partagent leur comportement (méthodes)
15
Instances Plusieurs objets d’une classe Horloge peuvent avoir des états différents (ne donnent pas la même heure) Mais : ont les mêmes comportements (même fonctions ou méthodes)
16
Polymorphisme Différentes classes partagent une interface Mais pas l’implémentation ! Deux classes peuvent avoir des méthodes de même nom Surcharge de fonctions Impossible en C !
17
Polymorphisme Interface démarrer() avancer() avancer(nbkil : entier) Implémentation nbChevaux : entier avancer() { // code propre à voiture } voiture bateau Interface démarrer() avancer() avancer(nbmil: entier) Implémentation nbChevaux : entier avancer() { // code propre à bateau }
18
Héritage Nouvelles classes à partir de classes connues Classe de base, classe dérivée La classe dérivée hérite de la structure (des données ou attributs) et des comportements de la classe de base. Permet d’enrichir, de spécialiser la classe de base en ajoutant de nouvelles informations; en redéfinissant des méthodes; en étendant des méthodes.
19
Animal Mammifère Structure entier taille, poids; Interface init(entier tai,poi); manger() seDéplacer() Structure entier taille, poids; entier gestation; Interface init(entier tai,poi,gest); manger() seDéplacer() Structure entier taille, poids; entier gestation; string nom; Interface init(entier tai,poi,gest, string name); manger() seDéplacer() seFrotterAuxArbres(); manger() : hérité init() : redéfini seFrotterAuxArbres() : ajouté
20
Diagramme de classes
21
Héritage : à quoi ca sert ? Factoriser le code commun Contrat d’interface Module de fonctionnalités génériques Ajout en cas de besoin uniquement Tester
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.