2. La programmation orientée objet. Olivier Curé UMLV [page 56 ]

Documents pareils
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

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

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

Programmation Orientée Objet

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

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

Diagramme de classes

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

Initiation à JAVA et à la programmation objet.

Généralités sur le Langage Java et éléments syntaxiques.

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

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

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

Chapitre 2. Classes et objets

Évaluation et implémentation des langages

et Programmation Objet

Annexe : La Programmation Informatique

A. À propos des annuaires

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

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

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Université de Bangui. Modélisons en UML

Chapitre I : le langage UML et le processus unifié

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

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

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

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

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Programmation Orientée Objet en C#

UML (Diagramme de classes) Unified Modeling Language

sur les activités futures qui seront mises en œuvre au Maroc en matière de gestion et d administration de la justice

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

GOL502 Industries de services

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

Plan Pédagogique du cours

Patrons de Conception (Design Patterns)

WINDOWS SERVER 2003 Maintenance d'active directory V1.0

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Cours de Génie Logiciel

Application web de gestion de comptes en banques

modélisation solide et dessin technique

Éléments de programmation et introduction à Java

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

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

Objectifs d apprentissage. tenir des rôles différents : coopérer / s opposer. apprendre à passer un ballon

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

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

UML. Diagrammes de classes (suite) Delphine Longuet.

as Architecture des Systèmes d Information

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

Programmation. fonctionnelle, impérative, logique et orientée objet

Vous venez de procéder à la mise à jour? Découvrez les nouveautés de Microsoft Dynamics CRM 2013 et Microsoft Dynamics CRM Online, automne 2013

INITIATION AU LANGAGE JAVA

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

SIG ET ANALYSE EXPLORATOIRE

Génie Logiciel Orienté Objet UML

RECOMMANDATION 30 ASSURANCES AUTOMOBILES : CARTE VERTE

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Machines virtuelles Cours 1 : Introduction

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Introduction aux services Active Directory

Cours de Programmation 2

IFT2255 : Génie logiciel

Le langage UML 2.0 Notion d Objet

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Présentation de Active Directory

Chapitre 1 Qu est-ce qu une expression régulière?

Groupe de Travail ALCO : Contrôles de Compliance MIFID

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

DES CONCEPTS OBJET PAR JAVA

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Modélisation conceptuelle des données Responsable: Dominique Schneuwly, Regis Caloz

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Monter une photo en médaillon

TP1 : Initiation à Java et Eclipse

DROPBOX. Stocker et partager des fichiers avec

Architectures en couches pour applications web Rappel : Architecture en couches

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

.NET remoting. Plan. Principes de.net Remoting

Créer et partager des fichiers

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Méthodes de développement. Analyse des exigences (spécification)

3. UML - Unified Modeling Language Diagrammes statiques

Chapitre 7 - Relativité du mouvement

Urbanisation de système d'information. PLM 6 (Product Lifecycle Management) Collaboration et partage d'informations

Rapport de Projet Béatrice Frey et Cyril Crassin Printemps Projet Fourmis. Université de Technologie de Belfort-Montbéliard

Le niveau conceptuel : la modélisation des bases de données

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

M Études et développement informatique

Préparation à l examen EFA en Macro

Transcription:

2. La programmation orientée objet Olivier Curé UMLV [page 56 ]

Historique de la POO Simula (1966) regroupe données et procédures. Simula I (1972) formalise les concepts d'objet et de classe. Un programme devient une collection d'objets actifs et autonomes. Smalltalk (1972) : généralisation de la notion d'objet. C++ (1983) : Extension du C s'inspirant de Simula. Java (1994) : d'abord pour le web puis généraliste. Autres : C#, eiffel, ada, clu, Object pascal, delphi, python, etc.. Olivier Curé UMLV [page 57 ]

Olivier Curé UMLV [page 58 ]

Motivation et avantages de POO Motivation : concevoir, maintenir et exploiter facilement de gros logiciels. Avantages : modularité, abstraction, productivité et réutilisabilité, sûreté, encapsulation. Les autres approches : structurée impérative (C), fonctionnelle (Lisp) et logique (Prolog). Olivier Curé UMLV [page 59 ]

Modularité et Abstraction Modularité : les objets forment des modules compacts regroupant des données et un ensemble d'opérations. Abstraction : Les entités objets de la POO sont proches de celles du monde réel. Les concepts utilisés sont donc proches des abstractions familières que nous exploitons. Olivier Curé UMLV [page 60 ]

productivité et réutilisabilité, sûreté productivité et réutilisabilité : Plus l'application est complexe et plus l'approche POO est intéressante en terme de productivité. Le niveau de réutilisabilité est supérieur à la programmation impérative. sûreté : L'encapsulation et le typage des classes offrent une certaine robustesse aux applications. Olivier Curé UMLV [page 61 ]

Les concepts fondamentaux Objet, classe et instance les membres de classe et d'instance envoi de message et méthode héritage, encapsulation et polymorphisme Constructeur et destructeur Classe abstraite / concrète Olivier Curé UMLV [page 62 ]

Objet Les objets sont omniprésents (humain, livre,etc.) dans notre monde. En POO : objet = identité + états + comportements L'identité doit permettre d'identifier sans ambiguïté l'objet (adresse/référence ou nom). Modélisation informatique : les états sont stockés dans des propriétés (variables) et les comportements sont implémentés à l'aide de méthodes (procédures / fonctions). Olivier Curé UMLV [page 63 ]

Exemple d'un objet Soit la modélisation d'un objet être humain. Son identité peut être son nom ou bien un numéro. Ses états seront sa taille, son poids, la couleur de ses yeux, etc.. Ses comportements seront respirer, marcher, parler, etc.. Olivier Curé UMLV [page 64 ]

Classe Le monde réel regroupe des objets du même type. Il est pratique de concevoir une maquette (un moule) d'un objet et de produire les objets à partir de cette maquette. En POO, une maquette se nomme une classe. Une classe est donc un modèle de la structure statique (variables d'instance) et du comportement dynamique (les méthodes) des objets associés à cette classe. Olivier Curé UMLV [page 65 ]

Instance Les objets associés à une classe se nomment des instances. Une instance est un objet, occurrence d'une classe, qui possède la structure définie par la classe et sur lequel les opérations définies dans la classe peuvent être appliquées. Olivier Curé UMLV [page 66 ]

Membre Membre = propriété + méthode Membre de classe Propriété de classe Une propriété de classe est associée à sa classe et non à une instance de cette classe. Méthode de classe Une méthode de classe est associée à une classe et non à un objet. Une méthode de classe ne peut exploiter que des membres de classe. Olivier Curé UMLV [page 67 ]

Membre (suite) Membre d'instance Propriété d'instance Une propriété d'instance est associée à une instance de la classe et non à la classe. Chaque objet possède donc sa propre copie de la propriété. Méthode d'instance Une méthode d'instance est associée à une instance d'une classe et non à la classe. Chaque objet possède donc sa propre copie de la méthode. Une méthode d'instance peut utiliser n'importe quel type de membre (classe ou instance). Olivier Curé UMLV [page 68 ]

Notion de message Un objet seul ne permet pas de concevoir une application garantissant les objectifs de la POO. Un programme est constitué d'objets. Ces derniers communiquent à l'aide de messages. Un message est composé : du nom de l'objet recevant le message, du nom de la méthode à exécuter et des paramètres nécessaires à la méthode. Objet A Objet B Olivier Curé UMLV [page 69 ]

Héritage Les objets sont définis à partir de classes. En POO, les classes sont définis à partir d'autres classes. Par exemple : un VTT est une sous-classe de Vélo. Une sous-classe n'est pas limitée aux caractéristiques de sa super-classe. Elle peut étendre cette dernière avec de nouvelles propriétés et méthodes. Vélo VTT Olivier Curé UMLV [page 70 ]

Encapsulation L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d'une structure en cachant l'implémentation de l'objet, c'est-à-dire en empêchant l'accès aux données par un autre moyen que les services proposés. Ce mécanisme permet donc de garantir l'intégrité des données contenues dans l'objet. Olivier Curé UMLV [page 71 ]

Encapsulation (suite) L'encapsulation permet de définir le niveau de visibilité des éléments de la classe. Ils définissent les droits d'accès : - publique - privée - protégée. état (propriété) comportement (méthode) Olivier Curé UMLV [page 72 ]

Polymorphisme Le polymorphisme désigne un concept de la théorie des types, selon lequel un nom d'objet peut désigner des instances de classes différentes issues d'une même arborescence. Exemple : ObjetGraphique Rectangle Cercle Les classes Rectangle et Cercle héritent de la classe ObjetGraphique. On peut définir une instance Rect1 d'un Rectangle comme un ObjetGraphique. Olivier Curé UMLV [page 73 ]

Constructeur Un constructeur est une opération de classe gérant la construction d'objets. Le nom de cette méthode est identique à celui de sa classe. Olivier Curé UMLV [page 74 ]

Destructeur Un destructeur est une opération de classe qui détruit des objets. Cette méthode libère donc de l'espace mémoire. Olivier Curé UMLV [page 75 ]

Classe concrète/ abstraite Une classe concrète est une classe qu'il est possible d'instancier. Ce n'est pas le cas d'une classe abstraite. Une classe abstraite relève purement de l'organisation et son objectif est uniquement lié à la spécification (description exhaustive d'un élément d'une modélisation). Olivier Curé UMLV [page 76 ]