SlideShare une entreprise Scribd logo
1  sur  38
Yannick Prié  Département Informatique - UFR Sciences et Techniques  Université Claude Bernard Lyon 1 2011-2012 Rappels sur l’objet
Objectifs de ce cours 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  2 Rappels sur les concepts fondamentaux liés à la programmation orientée objet TP noté pour remettre en action tous ces concepts
Objets 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  3 Objets du monde objets « concrets »  cette pierre, ma télévision, ta voiture plus ou moins coopératifs objets « abstraits », « conceptuels »  mon compte bancaire, le langage de programmation que j’utilise Catégories d’objets les pierres, les télévisions, les langages de programmation, les comptes bancaires, etc. Toujours relatifs à un certain contexte	 Choix de découpage du réel
Objets et abstraction 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  4 Objets  tout ce qui nous permet de réfléchir, parler, manipuler des concepts du domaine, avec  un certain nombre de propriétés les caractérisant  un certain nombre de comportements connus Abstraction  passage du particulier au général « abstraire » des propriétés, des comportements Classes d’objets propriétés et comportements similaires
En informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  5 Programme classique structures de données  tableau, arbre, etc. opérations sur ces structures de données  fonctions Difficultés faire évoluer structures de données et fonctions en même temps réutiliser des structures/fonctions en les spécialisant ...
Idée objet en informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  6 Regrouper dans un composant  des caractéristiques qui concernent une entité informatique  structure de données ensemble d’attributs variables avec nom, type, valeur les opérations liées à cette entité ensemble de fonctions   appelées méthodes avec : nom, valeur de retour, paramètres
Objet informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  7 Etat Ce qu’est l’objet à un instant donné + Comportement Comment l’objet réagit aux sollicitations + ...
Etat d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  8 Ensemble des valeurs des attributs de l’objet à un instant donné  L’état d’un objet change pendant sa vie Ma_voiture Ma_voiture Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 31 l
Comportement d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  9 Actions et réactions possibles ensemble d’opérations / méthodes démarrer, rouler, stopper, ajouter_essence Stimulation demander à un objet d’effectuer une méthode = lui envoyer un message Dans un programme ok = ma_voiture.démarrer() vol = ma_voiture.ajouter_essence(15)
Etat et opérations 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  10 L’état dépend des opérations effectuées Ex. ma_voiture.volume_essence si ma_voiture.rouler() a été appelée Les opérations dépendent de l’état courant Ex. ma_voiture.démarrer() ne marchera pas si ma_voiture.volume_essence == 0
Représentation d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  11 Ma_voiture UML : Nom de l’objet (souligné) Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Attributs Démarrer()Ajouter_essence(entier v) ... Méthodes Formalisme graphique UML (Unified Modeling Language)
Messages et collaboration d’objetsPassage du flot de contrôle 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  12 1- Démarrer() 2- Mettre_en_route() 3- Essence?() Le conducteur Réservoir 4- Quantite?() Ma voiture Le moteur 13- Température() Le frein roue AvDr 14- Mesure_temp()
Accès aux attributs/méthodes  2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  13 Accès depuis un autre objet Attribut/méthode public  tout objet peut y accéder Attribut/méthode privé aucun autre objet ne peut y accéder seul l’objet lui-même peut utiliser ses attributs et méthodes  comme un programme « indépendant » Attribut/méthode protégé accès limité
Objet informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  14 État Ce qu’est l’objet à un instant donné + Comportement Comment l’objet réagit aux sollicitations + Identité Ce qui identifie l’objet
Identité d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  15 Existence propre de l’objet identification non ambiguë indépendante de l’état géré par le système informatique  Une_de_plus ref23 ref56 ref15 Marque : «Fiat» Couleur : rouge Masse : 943 kg Volume essence : 32 l Ma_voiture ref3 Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Sa_voiture Marque : « Fiat » Couleur : rouge Masse : 943 kg Volume essence : 56 l Encore-une Marque : « Peugeot » Couleur : rouge Masse : 867 kg Volume essence : 12 l
Liens entre objets 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  16 Pour pouvoir envoyer un message à un objet, il faut le « connaître » Ex. l’objet Le_conducteur connaît l’objet Ma_voiture Connaître un objet revient à avoir une référence qui lui correspond Attributs, variables, paramètres de méthodes… ref15 ref67 Ma_voiture Le_conducteur ref3 Encore-une Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Conducteur : ref67 Sexe : M Couleur_yeux : bleu Age : 45Voitures : (ref15, ref3) Marque : « Peugeot » Couleur : rouge Masse : 867 kg Volume essence : 12 l
En bref 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  17 Cohérence interne des objets données + traitements Faible couplage entre l’objet et  l’environnement envoi de messages entre objets qui se connaissent Insertion dans un scénario de communication par envoi de messages objets clients : à l’origine d’une interaction objets serveurs : répondent à la sollicitation en général : client et serveur
Que nous manque-t-il ?  2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  18 Soient 2 objets : même structures de données (attributs) même comportement (opérations) Il faut les décrire abstraitement de la même manière Ma R12 Ta 205 Marque : Renault Couleur : bleu Marque : Peugeot Couleur : rouge Démarrer() Démarrer()
Notion de classe 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  19 Les objets sont regroupés à l’aide aux classes Une classe est une abstraction décrivant les propriétés communes des objets qui en sont des instances Une classe décrit une infinité d’instances Un objet sait toujours à quelle classe il appartient
Classification 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  20 Ta 205 Marque : Peugeot Couleur : rouge Voiture Démarrer() Marque : String Couleur : [bleu, rouge, …] Ma R12 : Voiture Marque : Renault Couleur : bleu Démarrer() Démarrer() UML : nom de la classe Instanciation …
Dans un programme OO 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  21 On définit des classes  leur attributs, privés et publics leurs méthodes, privées et publiques On instancie des objets à partir des classes On lance/gère la collaboration envoi de messages à des objets Exécution du programme : des objets  qui s’envoient des messages qui changent d’état
Résumé 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  22 Objet = état + comportement + identité Attributs Méthodes (référence) Classe  Abstraction  Définit une infinité d’objets instances
Liens entre objets  2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  23 UML : nom de lien Ottawa Canada A-pour-capitale  SNCF Luc employeur employé employeur Luc employé UML : noms de rôle
Associations entre classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  24 Associations simples Liens entre objets  associations entre classes Ville Pays A-pour-capitale 1 1 Entreprise Personne 1..n employeur employé 1 UML : cardinalités de l’association
Associations entre classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  25 Agrégation  Association non symétrique non nommée sémantique peu claire : éviter Composition  Association non symétrique nom nommée sémantique claire  composition au sens strict : les composants n’ont aucune indépendance par rapport au composé attention à ne pas sur-utiliser * Moteur Voiture 1 Patient Médecin * 1 FenêtreGraphique Zone boutons Zone dessin … BArrêter BLancer
Spécialisation / généralisation entre classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  26 Véhicule est une généralisation de voiture Bicyclette est une spécialisation de véhicule Véhicule Marque : String Couleur : [bleu, rouge, …] Démarrer() Vitesse() Bicyclette Voiture Marque : String Couleur : [bleu, rouge, …] Nb_plateaux : integer Marque : String Couleur : [bleu, rouge, …] Volume_essence : integer Démarrer() Freiner_avec_les_pieds() Vitesse() Démarrer() Ajouter_essence(integer) Vitesse()
Généralisation / spécialisation 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  27 Mise en place d’une hiérarchie de classes Voiture est une sous-classe de Véhicule  Implémentation : partage d’attributs et héritage Une sous-classe hérite des attributs et des méthodes de sa super-classe Héritage multiple : plusieurs super-classes à manipuler avec beaucoup de précautions possibilité d’implémenter avec des interfaces Ajout d’éléments propres	 Une sous-classe peut ajouter des attributs et méthodes à ceux qu’elle possède par héritage Surcharge Une sous-classe peut redéfinir les attributs et méthodes de sa sur-classe
Exemple 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  28 Véhicule Voiture Marque : String Couleur : [bleu, rouge, …] Marque : String Couleur : [bleu, rouge, …] Volume_essence : integer Freiner() CalculVitesse() Freiner() Ajouter_essence(integer) CalculVitesse() Bicyclette Attributs hérités Marque : String Couleur : [bleu, rouge, …] Nb_plateaux : integer Nouvel attribut  Surcharge de méthode Freiner() ChangerPlateau() CalculVitesse() Nouvelle méthode Méthode héritée
Polymorphisme 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  29 Ma R12 Marque : Renault Couleur : bleu Démarrer() Une même opération peut se comporter différemment pour différentes classes / objets Suivant l’objet, le langage sélectionne la méthode à utiliser pour la classe en cours Il n’y a pas besoin de connaître toutes les méthodes existantes pour en implanter une nouvelle  Mon vélo Marque : Peugeot Couleur : bleu Nb_vitesse : 21 Démarrer()
Exemple polymorphisme 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  30 Exemple d’utilisation Def Envoyer_au_lit():         For a in Animaux:          a.dormir() Gardien Animal 1 n Animaux Envoyer_au_lit() dormir() Paresseux Tigre Lion dormir() dormir() dormir() Tout le temps Sur le dos Sur le ventre
Classe abstraite 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  31 Classe qui n’est pas utilisée pour l’instanciation, et regroupe des propriétés et comportements Une classe dont certaines méthodes seront obligatoirement redéfinies dans les classes utilisées Méthodes abstraites Utilisation : pas d’instances directes, mais des instances directes de sous-classes Animal (méthode dormir) Vehicule (méthode freiner) Intérêt majeur pour une évolution maîtrisée du système de classes
Contrôle d’accès des attributs et méthodes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  32 3 types : privé : limitation à la classe public : accès pour toute classe protégé : accès limité aux sous-classes A C publique  m1() protégé  m2() privé  m3() B a.m1() OK a.m2() NON a.m3() NON instanciation self.m1() OK self.m2() OK self.m3() NON a:A
Organisation de classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  33 Regroupement/organisation de l’ensemble des classes de l’application hiérarchie de classe 	+ associations entre ces classes  Provenance certaines classes sont livrées avec le système certaines proviennent de paquetages additionels, récupérés ou achetés certaines sont fabriquées par le programmeur Organisation en paquetages  ensemble de classes fortement liées (collaboration) qui rendent des services (interfaces)
Définition d’une classe Déclaration éventuellement sous-classe d’une ou plusieurs autres classes éventuellement implémentant une interface Attributs types simples autres objets Méthodes constructeur utilisé à l’instanciation  initialiser les attributs réserver de la mémoire appeler le constructeur de la super-classe si besoin destructeur : utilisé à la destruction libération de la mémoire autres sélecteurs : renvoient une partie de l’état de l’objet modificateurs : modifient l’état calcul .. 34 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1
Attributs et méthodes de classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  35 Accessibles au niveau de la classe et non des objets Voiture Nombre de marques : int Marque : String Couleur : [bleu, rouge, …] Volume_essence : integer getNbMarques() Freiner() Ajouter_essence(integer) CalculVitesse()
Instances objets 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  36 Création de l’objet  avec des paramètres ou non appel du constructeur adapté  allocation mémoire Vie de l’objet  réception et traitement de messages envoi de messages à d’autres objets Mort de l’objet appel du destructeur
Critères caractéristiques de l’OO 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  37 Encapsulation données / traitements Identité  Abstraction / classification  Généralisation / héritage Polymorphisme
TP noté 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1  38 JAVA Jeu de dames

Contenu connexe

En vedette

Le temple-des-tigres
Le temple-des-tigresLe temple-des-tigres
Le temple-des-tigresSweety4441
 
DARES : Les chiffres du chômage en juillet 2012
DARES : Les chiffres du chômage en juillet 2012DARES : Les chiffres du chômage en juillet 2012
DARES : Les chiffres du chômage en juillet 2012Nathalie SALLES
 
Présentation geo maning concept
Présentation geo maning conceptPrésentation geo maning concept
Présentation geo maning conceptMoktar Outtas
 
Une imposture ideologique
Une imposture ideologiqueUne imposture ideologique
Une imposture ideologiqueGregoireA
 
Projet social 2011-2015
Projet social 2011-2015Projet social 2011-2015
Projet social 2011-2015csgrainedevie
 
Présentation (Mme.Jirasri)
Présentation (Mme.Jirasri)Présentation (Mme.Jirasri)
Présentation (Mme.Jirasri)thuyvi275
 
Unédic : Note d'équilibre technique - Septembre 2013
Unédic : Note d'équilibre technique - Septembre 2013Unédic : Note d'équilibre technique - Septembre 2013
Unédic : Note d'équilibre technique - Septembre 2013Nathalie SALLES
 
Créations 2011
Créations 2011Créations 2011
Créations 2011elodie67
 
AcosStat : conjoncture n°178 - Septembre 2013
AcosStat : conjoncture n°178 - Septembre 2013AcosStat : conjoncture n°178 - Septembre 2013
AcosStat : conjoncture n°178 - Septembre 2013Nathalie SALLES
 
Qué es proyecto adai
Qué es proyecto adaiQué es proyecto adai
Qué es proyecto adaichemalamiran
 
Pres lia 27 9 2013
Pres lia 27 9 2013Pres lia 27 9 2013
Pres lia 27 9 2013Oscar Ayala
 
De quel lean parle t-on ? Mathieu Duffau
De quel lean parle t-on ? Mathieu DuffauDe quel lean parle t-on ? Mathieu Duffau
De quel lean parle t-on ? Mathieu DuffauInstitut Lean France
 
Ley general de educacion 0
Ley general de educacion 0 Ley general de educacion 0
Ley general de educacion 0 Adalberto
 
Créations 2011
Créations 2011Créations 2011
Créations 2011elodie67
 
Assises du film présentation générale 2015 vc
Assises du film présentation générale 2015 vcAssises du film présentation générale 2015 vc
Assises du film présentation générale 2015 vcLuxemburger Wort
 

En vedette (20)

Le temple-des-tigres
Le temple-des-tigresLe temple-des-tigres
Le temple-des-tigres
 
DARES : Les chiffres du chômage en juillet 2012
DARES : Les chiffres du chômage en juillet 2012DARES : Les chiffres du chômage en juillet 2012
DARES : Les chiffres du chômage en juillet 2012
 
Présentation geo maning concept
Présentation geo maning conceptPrésentation geo maning concept
Présentation geo maning concept
 
Une imposture ideologique
Une imposture ideologiqueUne imposture ideologique
Une imposture ideologique
 
Projet social 2011-2015
Projet social 2011-2015Projet social 2011-2015
Projet social 2011-2015
 
Présentation (Mme.Jirasri)
Présentation (Mme.Jirasri)Présentation (Mme.Jirasri)
Présentation (Mme.Jirasri)
 
Unédic : Note d'équilibre technique - Septembre 2013
Unédic : Note d'équilibre technique - Septembre 2013Unédic : Note d'équilibre technique - Septembre 2013
Unédic : Note d'équilibre technique - Septembre 2013
 
Créations 2011
Créations 2011Créations 2011
Créations 2011
 
AcosStat : conjoncture n°178 - Septembre 2013
AcosStat : conjoncture n°178 - Septembre 2013AcosStat : conjoncture n°178 - Septembre 2013
AcosStat : conjoncture n°178 - Septembre 2013
 
Photo roman
Photo romanPhoto roman
Photo roman
 
Le Monde de Demain
Le Monde de DemainLe Monde de Demain
Le Monde de Demain
 
Qué es proyecto adai
Qué es proyecto adaiQué es proyecto adai
Qué es proyecto adai
 
Pres lia 27 9 2013
Pres lia 27 9 2013Pres lia 27 9 2013
Pres lia 27 9 2013
 
Nicolas sarkozy
Nicolas sarkozyNicolas sarkozy
Nicolas sarkozy
 
De quel lean parle t-on ? Mathieu Duffau
De quel lean parle t-on ? Mathieu DuffauDe quel lean parle t-on ? Mathieu Duffau
De quel lean parle t-on ? Mathieu Duffau
 
Empleate y ocupate
Empleate y ocupateEmpleate y ocupate
Empleate y ocupate
 
Ley general de educacion 0
Ley general de educacion 0 Ley general de educacion 0
Ley general de educacion 0
 
Créations 2011
Créations 2011Créations 2011
Créations 2011
 
Assises du film présentation générale 2015 vc
Assises du film présentation générale 2015 vcAssises du film présentation générale 2015 vc
Assises du film présentation générale 2015 vc
 
Les packs Home Media
Les packs Home MediaLes packs Home Media
Les packs Home Media
 

Similaire à CM rappels-objet (8)

CM patterns
CM patternsCM patterns
CM patterns
 
Decouvrir les metiers du web
Decouvrir les metiers du webDecouvrir les metiers du web
Decouvrir les metiers du web
 
Informatique
InformatiqueInformatique
Informatique
 
CM CU-cockburn
CM CU-cockburnCM CU-cockburn
CM CU-cockburn
 
Présentation webscool CCI Mulhouse, JC Freund
Présentation webscool CCI Mulhouse, JC FreundPrésentation webscool CCI Mulhouse, JC Freund
Présentation webscool CCI Mulhouse, JC Freund
 
CM uml-concepts-avances
CM uml-concepts-avancesCM uml-concepts-avances
CM uml-concepts-avances
 
Projet Carrière informatique
Projet Carrière informatiqueProjet Carrière informatique
Projet Carrière informatique
 
Linkfluence - Etude Automobile Verte - Février 2010
Linkfluence - Etude Automobile Verte - Février 2010Linkfluence - Etude Automobile Verte - Février 2010
Linkfluence - Etude Automobile Verte - Février 2010
 

Plus de Yannick Prié (Enseignement) (13)

Tools and Methodology for Research: Being a Researcher
Tools and Methodology for Research: Being a ResearcherTools and Methodology for Research: Being a Researcher
Tools and Methodology for Research: Being a Researcher
 
Tools and Methodology for Research: Future of Science
Tools and Methodology for Research: Future of ScienceTools and Methodology for Research: Future of Science
Tools and Methodology for Research: Future of Science
 
Tools and Methodology for Research: Research Landscape
Tools and Methodology for Research: Research LandscapeTools and Methodology for Research: Research Landscape
Tools and Methodology for Research: Research Landscape
 
Tools and Methodology for Research: Writing Scientific Material
Tools and Methodology for Research: Writing Scientific MaterialTools and Methodology for Research: Writing Scientific Material
Tools and Methodology for Research: Writing Scientific Material
 
Tools and Methodology for Research: Article Reading
Tools and Methodology for Research: Article ReadingTools and Methodology for Research: Article Reading
Tools and Methodology for Research: Article Reading
 
Tools and Methodology for Research: Scientific Publishing
Tools and Methodology for Research: Scientific PublishingTools and Methodology for Research: Scientific Publishing
Tools and Methodology for Research: Scientific Publishing
 
Tools and Methodology for Research: Knowledge Production
Tools and Methodology for Research: Knowledge ProductionTools and Methodology for Research: Knowledge Production
Tools and Methodology for Research: Knowledge Production
 
Tools and Methodology for Research: Introduction
Tools and Methodology for Research: Introduction Tools and Methodology for Research: Introduction
Tools and Methodology for Research: Introduction
 
CM processus-unifie
CM processus-unifieCM processus-unifie
CM processus-unifie
 
CM processus agile
CM processus agileCM processus agile
CM processus agile
 
CM Processus Méthodes
CM Processus MéthodesCM Processus Méthodes
CM Processus Méthodes
 
CM uml-intro
CM uml-introCM uml-intro
CM uml-intro
 
CM CSI
CM CSICM CSI
CM CSI
 

Dernier

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...Faga1939
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Coursebenezerngoran
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 

Dernier (18)

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 

CM rappels-objet

  • 1. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012 Rappels sur l’objet
  • 2. Objectifs de ce cours 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 2 Rappels sur les concepts fondamentaux liés à la programmation orientée objet TP noté pour remettre en action tous ces concepts
  • 3. Objets 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 3 Objets du monde objets « concrets » cette pierre, ma télévision, ta voiture plus ou moins coopératifs objets « abstraits », « conceptuels » mon compte bancaire, le langage de programmation que j’utilise Catégories d’objets les pierres, les télévisions, les langages de programmation, les comptes bancaires, etc. Toujours relatifs à un certain contexte Choix de découpage du réel
  • 4. Objets et abstraction 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 4 Objets tout ce qui nous permet de réfléchir, parler, manipuler des concepts du domaine, avec un certain nombre de propriétés les caractérisant un certain nombre de comportements connus Abstraction passage du particulier au général « abstraire » des propriétés, des comportements Classes d’objets propriétés et comportements similaires
  • 5. En informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 5 Programme classique structures de données tableau, arbre, etc. opérations sur ces structures de données fonctions Difficultés faire évoluer structures de données et fonctions en même temps réutiliser des structures/fonctions en les spécialisant ...
  • 6. Idée objet en informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 6 Regrouper dans un composant des caractéristiques qui concernent une entité informatique structure de données ensemble d’attributs variables avec nom, type, valeur les opérations liées à cette entité ensemble de fonctions appelées méthodes avec : nom, valeur de retour, paramètres
  • 7. Objet informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 7 Etat Ce qu’est l’objet à un instant donné + Comportement Comment l’objet réagit aux sollicitations + ...
  • 8. Etat d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 8 Ensemble des valeurs des attributs de l’objet à un instant donné L’état d’un objet change pendant sa vie Ma_voiture Ma_voiture Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 31 l
  • 9. Comportement d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 9 Actions et réactions possibles ensemble d’opérations / méthodes démarrer, rouler, stopper, ajouter_essence Stimulation demander à un objet d’effectuer une méthode = lui envoyer un message Dans un programme ok = ma_voiture.démarrer() vol = ma_voiture.ajouter_essence(15)
  • 10. Etat et opérations 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 10 L’état dépend des opérations effectuées Ex. ma_voiture.volume_essence si ma_voiture.rouler() a été appelée Les opérations dépendent de l’état courant Ex. ma_voiture.démarrer() ne marchera pas si ma_voiture.volume_essence == 0
  • 11. Représentation d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 11 Ma_voiture UML : Nom de l’objet (souligné) Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Attributs Démarrer()Ajouter_essence(entier v) ... Méthodes Formalisme graphique UML (Unified Modeling Language)
  • 12. Messages et collaboration d’objetsPassage du flot de contrôle 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 12 1- Démarrer() 2- Mettre_en_route() 3- Essence?() Le conducteur Réservoir 4- Quantite?() Ma voiture Le moteur 13- Température() Le frein roue AvDr 14- Mesure_temp()
  • 13. Accès aux attributs/méthodes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 13 Accès depuis un autre objet Attribut/méthode public tout objet peut y accéder Attribut/méthode privé aucun autre objet ne peut y accéder seul l’objet lui-même peut utiliser ses attributs et méthodes comme un programme « indépendant » Attribut/méthode protégé accès limité
  • 14. Objet informatique 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 14 État Ce qu’est l’objet à un instant donné + Comportement Comment l’objet réagit aux sollicitations + Identité Ce qui identifie l’objet
  • 15. Identité d’un objet 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 15 Existence propre de l’objet identification non ambiguë indépendante de l’état géré par le système informatique Une_de_plus ref23 ref56 ref15 Marque : «Fiat» Couleur : rouge Masse : 943 kg Volume essence : 32 l Ma_voiture ref3 Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Sa_voiture Marque : « Fiat » Couleur : rouge Masse : 943 kg Volume essence : 56 l Encore-une Marque : « Peugeot » Couleur : rouge Masse : 867 kg Volume essence : 12 l
  • 16. Liens entre objets 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 16 Pour pouvoir envoyer un message à un objet, il faut le « connaître » Ex. l’objet Le_conducteur connaît l’objet Ma_voiture Connaître un objet revient à avoir une référence qui lui correspond Attributs, variables, paramètres de méthodes… ref15 ref67 Ma_voiture Le_conducteur ref3 Encore-une Marque : « Fiat » Couleur : bleu Masse : 943 kg Volume essence : 32 l Conducteur : ref67 Sexe : M Couleur_yeux : bleu Age : 45Voitures : (ref15, ref3) Marque : « Peugeot » Couleur : rouge Masse : 867 kg Volume essence : 12 l
  • 17. En bref 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 17 Cohérence interne des objets données + traitements Faible couplage entre l’objet et l’environnement envoi de messages entre objets qui se connaissent Insertion dans un scénario de communication par envoi de messages objets clients : à l’origine d’une interaction objets serveurs : répondent à la sollicitation en général : client et serveur
  • 18. Que nous manque-t-il ? 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 18 Soient 2 objets : même structures de données (attributs) même comportement (opérations) Il faut les décrire abstraitement de la même manière Ma R12 Ta 205 Marque : Renault Couleur : bleu Marque : Peugeot Couleur : rouge Démarrer() Démarrer()
  • 19. Notion de classe 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 19 Les objets sont regroupés à l’aide aux classes Une classe est une abstraction décrivant les propriétés communes des objets qui en sont des instances Une classe décrit une infinité d’instances Un objet sait toujours à quelle classe il appartient
  • 20. Classification 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 20 Ta 205 Marque : Peugeot Couleur : rouge Voiture Démarrer() Marque : String Couleur : [bleu, rouge, …] Ma R12 : Voiture Marque : Renault Couleur : bleu Démarrer() Démarrer() UML : nom de la classe Instanciation …
  • 21. Dans un programme OO 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 21 On définit des classes leur attributs, privés et publics leurs méthodes, privées et publiques On instancie des objets à partir des classes On lance/gère la collaboration envoi de messages à des objets Exécution du programme : des objets qui s’envoient des messages qui changent d’état
  • 22. Résumé 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 22 Objet = état + comportement + identité Attributs Méthodes (référence) Classe Abstraction Définit une infinité d’objets instances
  • 23. Liens entre objets 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 23 UML : nom de lien Ottawa Canada A-pour-capitale  SNCF Luc employeur employé employeur Luc employé UML : noms de rôle
  • 24. Associations entre classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 24 Associations simples Liens entre objets  associations entre classes Ville Pays A-pour-capitale 1 1 Entreprise Personne 1..n employeur employé 1 UML : cardinalités de l’association
  • 25. Associations entre classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 25 Agrégation Association non symétrique non nommée sémantique peu claire : éviter Composition Association non symétrique nom nommée sémantique claire composition au sens strict : les composants n’ont aucune indépendance par rapport au composé attention à ne pas sur-utiliser * Moteur Voiture 1 Patient Médecin * 1 FenêtreGraphique Zone boutons Zone dessin … BArrêter BLancer
  • 26. Spécialisation / généralisation entre classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 26 Véhicule est une généralisation de voiture Bicyclette est une spécialisation de véhicule Véhicule Marque : String Couleur : [bleu, rouge, …] Démarrer() Vitesse() Bicyclette Voiture Marque : String Couleur : [bleu, rouge, …] Nb_plateaux : integer Marque : String Couleur : [bleu, rouge, …] Volume_essence : integer Démarrer() Freiner_avec_les_pieds() Vitesse() Démarrer() Ajouter_essence(integer) Vitesse()
  • 27. Généralisation / spécialisation 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 27 Mise en place d’une hiérarchie de classes Voiture est une sous-classe de Véhicule Implémentation : partage d’attributs et héritage Une sous-classe hérite des attributs et des méthodes de sa super-classe Héritage multiple : plusieurs super-classes à manipuler avec beaucoup de précautions possibilité d’implémenter avec des interfaces Ajout d’éléments propres Une sous-classe peut ajouter des attributs et méthodes à ceux qu’elle possède par héritage Surcharge Une sous-classe peut redéfinir les attributs et méthodes de sa sur-classe
  • 28. Exemple 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 28 Véhicule Voiture Marque : String Couleur : [bleu, rouge, …] Marque : String Couleur : [bleu, rouge, …] Volume_essence : integer Freiner() CalculVitesse() Freiner() Ajouter_essence(integer) CalculVitesse() Bicyclette Attributs hérités Marque : String Couleur : [bleu, rouge, …] Nb_plateaux : integer Nouvel attribut Surcharge de méthode Freiner() ChangerPlateau() CalculVitesse() Nouvelle méthode Méthode héritée
  • 29. Polymorphisme 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 29 Ma R12 Marque : Renault Couleur : bleu Démarrer() Une même opération peut se comporter différemment pour différentes classes / objets Suivant l’objet, le langage sélectionne la méthode à utiliser pour la classe en cours Il n’y a pas besoin de connaître toutes les méthodes existantes pour en implanter une nouvelle Mon vélo Marque : Peugeot Couleur : bleu Nb_vitesse : 21 Démarrer()
  • 30. Exemple polymorphisme 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 30 Exemple d’utilisation Def Envoyer_au_lit(): For a in Animaux: a.dormir() Gardien Animal 1 n Animaux Envoyer_au_lit() dormir() Paresseux Tigre Lion dormir() dormir() dormir() Tout le temps Sur le dos Sur le ventre
  • 31. Classe abstraite 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 31 Classe qui n’est pas utilisée pour l’instanciation, et regroupe des propriétés et comportements Une classe dont certaines méthodes seront obligatoirement redéfinies dans les classes utilisées Méthodes abstraites Utilisation : pas d’instances directes, mais des instances directes de sous-classes Animal (méthode dormir) Vehicule (méthode freiner) Intérêt majeur pour une évolution maîtrisée du système de classes
  • 32. Contrôle d’accès des attributs et méthodes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 32 3 types : privé : limitation à la classe public : accès pour toute classe protégé : accès limité aux sous-classes A C publique m1() protégé m2() privé m3() B a.m1() OK a.m2() NON a.m3() NON instanciation self.m1() OK self.m2() OK self.m3() NON a:A
  • 33. Organisation de classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 33 Regroupement/organisation de l’ensemble des classes de l’application hiérarchie de classe + associations entre ces classes Provenance certaines classes sont livrées avec le système certaines proviennent de paquetages additionels, récupérés ou achetés certaines sont fabriquées par le programmeur Organisation en paquetages ensemble de classes fortement liées (collaboration) qui rendent des services (interfaces)
  • 34. Définition d’une classe Déclaration éventuellement sous-classe d’une ou plusieurs autres classes éventuellement implémentant une interface Attributs types simples autres objets Méthodes constructeur utilisé à l’instanciation initialiser les attributs réserver de la mémoire appeler le constructeur de la super-classe si besoin destructeur : utilisé à la destruction libération de la mémoire autres sélecteurs : renvoient une partie de l’état de l’objet modificateurs : modifient l’état calcul .. 34 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1
  • 35. Attributs et méthodes de classes 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 35 Accessibles au niveau de la classe et non des objets Voiture Nombre de marques : int Marque : String Couleur : [bleu, rouge, …] Volume_essence : integer getNbMarques() Freiner() Ajouter_essence(integer) CalculVitesse()
  • 36. Instances objets 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 36 Création de l’objet avec des paramètres ou non appel du constructeur adapté allocation mémoire Vie de l’objet réception et traitement de messages envoi de messages à d’autres objets Mort de l’objet appel du destructeur
  • 37. Critères caractéristiques de l’OO 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 37 Encapsulation données / traitements Identité Abstraction / classification Généralisation / héritage Polymorphisme
  • 38. TP noté 2010-2011 - Yannick Prié - Université Claude Bernard Lyon 1 38 JAVA Jeu de dames