SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Mais 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
 

Último

SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 

Último (20)

SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.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