Rappels sur l objet. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012

Documents pareils
UML (Diagramme de classes) Unified Modeling Language

Programmation Orientée Objet

GOL502 Industries de services

Diagramme de classes

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

IFT2255 : Génie logiciel

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Information utiles. webpage : Google+ : digiusto/

Héritage presque multiple en Java (1/2)

3. UML - Unified Modeling Language Diagrammes statiques

Objets et Programmation. origine des langages orientés-objet

Génie Logiciel avec Ada. 4 février 2013

Chapitre 2. Classes et objets

Université de Bangui. Modélisons en UML

Chapitre VI- La validation de la composition.

Introduction au Génie Logiciel

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Modélisation de bases de données : Le modèle relationnel

UML. Diagrammes de classes (suite) Delphine Longuet.

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Génie Logiciel Orienté Objet UML

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Patrons de Conception (Design Patterns)

Bases de données. Chapitre 1. Introduction

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Développement d un interpréteur OCL pour une machine virtuelle UML.

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Diagrammes de Package, de déploiement et de composants UML

Programmation Objet - Cours II

INITIATION AU LANGAGE JAVA

Programmer en JAVA. par Tama

Générer du code à partir d une description de haut niveau

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Rappel sur les bases de données

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Programmation Orientée Objet application au langage Java Version Novembre 2007

Initiation à JAVA et à la programmation objet.

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

TP1 : Initiation à Java et Eclipse

Plan Pédagogique du cours

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

UML et les Bases de Données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

UML (Paquetage) Unified Modeling Language

II. Modèle conceptuel le modèle entité-association

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Programmation en Java IUT GEII (MC-II1) 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Introduction à la conception de systèmes d information

Conception, architecture et urbanisation des systèmes d information

Auto-évaluation Programmation en Java

Cours de Génie Logiciel

Table des matières Sources

Traduction des Langages : Le Compilateur Micro Java

Les diagrammes de modélisation

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

Conception des bases de données : Modèle Entité-Association

Meta Object Facility. Plan

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

Programmation MacOSX / ios

Cours STIM P8 TD 1 Génie Logiciel

Description de la formation

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Premiers Pas en Programmation Objet : les Classes et les Objets

Langage Java. Classe de première SI

Présentation du Modèle de Référence pour les Bibliothèques FRBR

Chapitre I : le langage UML et le processus unifié

Cours en ligne Développement Java pour le web

Bases Java - Eclipse / Netbeans

Programmation Objet Java Correction

OCL - Object Constraint Language

L enseignement de méthodes agiles dans un contexte d apprentissage actif

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours 1 : La compilation

1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Introduction aux concepts d ez Publish

LA PUISSANCE DES MOTEURS. Avez-vous déjà feuilleté le catalogue d un grand constructeur automobile?

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

CREATION WEB DYNAMIQUE

Ingénérie logicielle dirigée par les modèles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Urbanisation de système d'information. PLM 3 (Product Lifecycle Management) Élaborations, versions, variantes, configurations

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

Ingénierie des Modèles. Méta-modélisation

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Cours 1: Java et les objets

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

DES CONCEPTS OBJET PAR JAVA

Transcription:

Rappels sur l objet Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012

Objectifs de ce cours 2 Rappels sur les concepts fondamentaux liés à la programmation orientée objet TP noté pour remettre en action tous ces concepts

Objets 3 Objets du monde objets «concrets» n cette pierre, ma télévision, ta voiture n plus ou moins coopératifs objets «abstraits», «conceptuels» n 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 4 Objets tout ce qui nous permet de réfléchir, parler, manipuler des concepts du domaine, avec n un certain nombre de propriétés les caractérisant n 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 5 Programme classique structures de données n tableau, arbre, etc. opérations sur ces structures de données n 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 6 Regrouper dans un composant des caractéristiques qui concernent une entité informatique n structure de données n ensemble d attributs n variables avec nom, type, valeur les opérations liées à cette entité n ensemble de fonctions n appelées méthodes n avec : nom, valeur de retour, paramètres

Objet informatique 7 Etat Ce qu est l objet à un instant donné + Comportement Comment l objet réagit aux sollicitations +...

Etat d un objet 8 Ensemble des valeurs des attributs de l objet à un instant donné L état d un objet change pendant sa vie Ma_voiture Marque : «Fiat» Couleur : bleu Masse : 943 kg Volume essence : 32 l Ma_voiture Marque : «Fiat» Couleur : bleu Masse : 943 kg Volume essence : 31 l

Comportement d un objet 9 Actions et réactions possibles ensemble d opérations / méthodes n démarrer, rouler, stopper, ajouter_essence Stimulation demander à un objet d effectuer une méthode = lui envoyer un message Dans un programme n ok = ma_voiture.démarrer() n vol = ma_voiture.ajouter_essence(15)

Etat et opérations 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 11 Ma_voiture Marque : «Fiat» Couleur : bleu Masse : 943 kg Volume essence : 32 l Démarrer() Ajouter_essence(entier v)... UML : Nom de l objet (souligné) Attributs Méthodes Formalisme graphique UML (Unified Modeling Language)

Messages et collaboration d objets 12 Passage du flot de contrôle Le conducteur 1- Démarrer() Ma voiture Réservoir 4- Quantite?() 2- Mettre_en_route() 13- Température() 3- Essence?() Le moteur Le frein roue AvDr 14- Mesure_temp()

Accès aux attributs/méthodes 13 Accès depuis un autre objet Attribut/méthode public n tout objet peut y accéder Attribut/méthode privé n aucun autre objet ne peut y accéder n seul l objet lui-même peut utiliser ses attributs et méthodes n comme un programme «indépendant» Attribut/méthode protégé n accès limité

Objet informatique 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 15 Existence propre de l objet identification non ambiguë indépendante de l état géré par le système informatique Ma_voiture Marque : «Fiat» Couleur : bleu Masse : 943 kg Volume essence : 32 l ref15 ref23 Sa_voiture Marque : «Fiat» Couleur : rouge Masse : 943 kg Volume essence : 56 l ref56 ref3 Une_de_plus Marque : «Fiat» Couleur : rouge Masse : 943 kg Volume essence : 32 l Encore-une Marque : «Peugeot» Couleur : rouge Masse : 867 kg Volume essence : 12 l

Liens entre objets 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 Ma_voiture Marque : «Fiat» Couleur : bleu Masse : 943 kg Volume essence : 32 l Conducteur : ref67 ref15 Encore-une ref3 Marque : «Peugeot» Couleur : rouge Masse : 867 kg Volume essence : 12 l Le_conducteur Sexe : M Couleur_yeux : bleu Age : 45 Voitures : (ref15, ref3) ref67

En bref 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? 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 Marque : Renault Couleur : bleu Démarrer() Ta 205 Marque : Peugeot Couleur : rouge Démarrer()

Notion de classe 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 20 UML : nom de la classe Voiture Marque : String Couleur : [bleu, rouge, ] Démarrer() Instanciation Ta 205 Marque : Peugeot Couleur : rouge Démarrer() Ma R12 Marque : Renault Couleur : bleu Démarrer() : Voiture

Dans un programme OO 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é 22 Objet = état + comportement + identité Attributs Méthodes (référence) Classe Abstraction Définit une infinité d objets instances

Liens entre objets 23 UML : nom de lien Canada A-pour-capitale u Ottawa Luc employé employeur SNCF employeur Luc employé UML : noms de rôle

Associations entre classes 24 Associations simples Liens entre objets à associations entre classes Pays 1 A-pour-capitale 1 Ville Personne 1..n employé employeur 1 Entreprise UML : cardinalités de l association

Associations entre classes 25 Agrégation Association n non symétrique n non nommée sémantique peu claire : éviter Composition Association n non symétrique n nom nommée sémantique claire n composition au sens strict : les composants n ont aucune indépendance par rapport au composé n attention à ne pas sur-utiliser Voiture Médecin 1 1 BArrêter Zone boutons * * Moteur Patient FenêtreGraphique BLancer Zone dessin

Spécialisation / généralisation entre 26 classes 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() Voiture Marque : String Couleur : [bleu, rouge, ] Volume_essence : integer Démarrer() Ajouter_essence(integer) Vitesse() Bicyclette Marque : String Couleur : [bleu, rouge, ] Nb_plateaux : integer Démarrer() Freiner_avec_les_pieds() Vitesse()

Généralisation / spécialisation 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 n à manipuler avec beaucoup de précautions n 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 28 Voiture Marque : String Couleur : [bleu, rouge, ] Volume_essence : integer Freiner() Ajouter_essence(integer) CalculVitesse() Attributs hérités Nouvel attribut Surcharge de méthode Nouvelle méthode Méthode héritée Véhicule Marque : String Couleur : [bleu, rouge, ] Freiner() CalculVitesse() Bicyclette Marque : String Couleur : [bleu, rouge, ] Nb_plateaux : integer Freiner() ChangerPlateau() CalculVitesse()

Polymorphisme 29 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 Ma R12 Marque : Renault Couleur : bleu Démarrer() Mon vélo Marque : Peugeot Couleur : bleu Nb_vitesse : 21 Démarrer()

Exemple polymorphisme 30 Gardien Envoyer_au_lit() 1 n Animaux Animal dormir() Exemple d utilisation Def Envoyer_au_lit(): For a in Animaux: a.dormir() Lion dormir() Tigre dormir() Paresseux dormir() Sur le dos Sur le ventre Tout le temps

Classe abstraite 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 32 des attributs et méthodes 3 types : privé : limitation à la classe public : accès pour toute classe protégé : accès limité aux sous-classes A publique m1() protégé m2() privé m3() instanciation a:a B self.m1() OK self.m2() OK self.m3() NON C a.m1() OK a.m2() NON a.m3() NON

Organisation de classes 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 34 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 n initialiser les attributs n réserver de la mémoire n appeler le constructeur de la super-classe si besoin destructeur : utilisé à la destruction n libération de la mémoire autres n sélecteurs : renvoient une partie de l état de l objet n modificateurs : modifient l état n calcul n..

Attributs et méthodes de classes 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 36 Création de l objet avec des paramètres ou non appel du constructeur adapté n 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 37 Encapsulation données / traitements Identité Abstraction / classification Généralisation / héritage Polymorphisme

TP noté 38 JAVA Jeu de dames