La programmation Orienté Objet

Slides:



Advertisements
Présentations similaires
Treuil IRD Abdelwahed FSSM-Marrakech
Advertisements

APPROCHE PAR LES COMPETENCES ET
UML - Présentation.
Introduction à Java - les paquetages -
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
Programmation Orientée Objet (POO)
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
. Importance des procédures administratives & financières et du contrôle interne.
Principes de la technologie orientée objets
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Analyse et Conception des Systèmes d’Informations
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Algorithmique et Programmation
Analyse et Conception orientée objet
Initiation à la conception de systèmes d'information
Introduction à la conception de Bases de Données Relationnelles
Groupe 1: Classes de même intervalle
Principes de programmation (suite)
Bases de données lexicales
Algorithmique et Programmation
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
C++ : classes Introduction aux Langages Orientés Objets
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Modélisation orientée objet UML
Techniques de test Boulanger Jean-Louis.
Structures de données IFT-2000
Introduction au paradigme orienté-objet (suite)
Formation JAVA. Par: SILMI.S
Types de données abstrait et mécanismes d'encapsulation
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 2: Review of Object Orientation.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Programmation non procédurale Le projet ECOLE 2000
Sensibilisation a la modelisation
Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,
Patrons de conceptions de créations
Travaux Pratiques Représentation des connaissances
Paradigmes des Langages de Programmation
Programmation objet La base.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
Arbre GénéalogiqueDiagramme de Classes Comment la visualisation d’une hiérarchie de classes facilitera le travail de notre client ?
Introduction à la programmation objet en C++
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Le langage Racket (Lisp)
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
MOCK.
Les classes Introduction aux Langages Orientés Objets
La programmation par objets Principes et concepts Etude de Smalltalk.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 2: Review of Object Orientation.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
eXtensible Markup Language. Généralités sur le XML.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Introduction à la Programmation Orientée Objet
Philippe Gandy - 1 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD.
GEOMETRIE du cycle 1 au cycle 3 quelques pistes
Paradigme Orienté Objet
Transcription de la présentation:

La programmation Orienté Objet

2.1 Qu’est-ce que l’Orientation Objet? Chapter 2: Review of Object Orientation © Lethbridge/Laganière 2001 2.1 Qu’est-ce que l’Orientation Objet? Deux types différent de programmation: Programmation procédural: Le logiciel est organisé autour de la notion de procédures Fonctionne bien lorsque les données sont simples Paradigme orienté objet: Grouper ensemble les données décrivant une même entité Aide à réduire la complexité du système

Paradigme Orienté Objet Une approche consistant à organiser la solution d’un problème autour du concept d’objets. Ces objets sont des instances de classes: Ce sont des abstractions de données Contenant des abstractions de procédures Un programme devient alors un ensemble d’objets collaborant entre eux afin d’effectuer un tâche donnée

Illustration des ces deux types

2.2 Classes et Objets Un objet Chapter 2: Review of Object Orientation © Lethbridge/Laganière 2001 2.2 Classes et Objets Un objet est un ensemble structuré de données s’exécutant dans un logiciel a des propriétés représentant son état a un comportement définissant ses actions et réactions simulant parfois le comportement d’un objet du monde réel

Objets Paiement Personne Sensor Réçu Professeur Édifice Voiture Comptable Étudiant Accident

Classes Une classe: Est une unité d’abstraction dans un programme orienté-objet Représente des objets similaires ses instances Est un module logiciel Décrivant la structure de ses instances (propriétés) Contenant des méthodes définissant leur comportement

Donner un nom à une classe Devrait toujours débuter par une lettre majuscule E.g. Banque not banque Utiliser le singulier Utiliser le bon niveau de généralité E.g. Municipalité pourrait être préférable à Ville Donner un nom non ambigu ayant un sens précis E.g. Pièce peut avoir plusieurs sens

2.3 Variables d’instances Ce sont des variables définies à l’intérieur d’une classe Attributs des données simples E.g. nom, dateDeNaissance

Variables vs. Objets Une variable Réfère à un objet Peut référer à différents objets à différents instants Un objet peut être simultanément référé par plus d’une variable Type d’une variable Détermine quelle classe d’objets elle peut référer

Variables de classe La valeur d’une telle variable est partagée par toutes les instances de la classe Aussi appelée variable statique Si l’une des instances modifie la valeur d’une variable de classe, alors toutes les autres instances verront ce changement Ces variables sont utiles pour: représenter des constantes (e.g. PI) représenter des propriétés d’appliquant à une classe en général Attention: ne pas faire un usage excessif des variables de classes

2.4 Méthodes, Opérations et Polymorphisme Une abstraction procédurale de haut niveau correspondant à un comportement spécifique Indépendante de toute implémentation E.g., calcul de l’aire d’une figure

Méthodes, Opérations et Polymorphisme Représente un comportement dans une classe donnée Plusieurs classes différentes peuvent avoir des méthodes de même nom Généralement c’est qu’elles réalisent la même opération d’une manière propre à chaque classe E.g, le calcul de l’aire d’un rectangle et d’un cercle

Hierarchies

Règle “est-un(e)” La généralisation obéit toujours à une règle d’état “Un compte chèque est un compte de banque” “Un village est une municipalité” Est-ce qu’une Province devrait être une sous- classe de Pays? Non! “Une province n’est pas un pays”

Un arbre d’héritage pour des entités géométriques

Tous les éléments hérités doivent s’appliquer adéquatement aux sous-classes

Le langage Java Histoire Le premier langage orienté objet fut Simula-67 Conçu pour faciliter l’écriture de programmes de simulation Au début des années 1980, Smalltalk fut développé à Xerox PARC Syntaxe nouvelle, importante librairie èa code ouvert, indépendance de plate-forme, ramasse-miette, bytecode A la fin des années 1980, C++ fut développé par B. Stroustrup, Tire profit des avantages de l’orienté-objet tout en profitant de la popularité de C En 1991, les ingénieurs de Sun Microsystems lance un projet afin concevoir un langage à être utilisé dans les petits appareils intelligents: Oak Avec l’avènement de l’Internet, une nouvelle opportunité se dessine pour cette technologie Ce nouveau langage renommé Java, fut officiellement lancé en 1995 à la conférence SunWorld ’95

Documentation Être capable de connaître les classes et les méthodes d’un système orienté-objet est fondamental Un outil appelé Javadoc permet de construire automatiquement la documentation associée à un programme écrit en Java Cette documentation est construite à partir du code et des commentaires écrits par le programmeur Un format spécial doit être respecté pour les commentaires Ceux-ci peuvent même inclure du html

Style de programmation Toujours garder à l’esprit qu’un programme est fait pour être lu Toujours retenir l’alternative la plus simple Écarter toute approche aussi futée soit elle, mais difficile à saisir Un programme plus court n’est pas nécessairement meilleur Choisir des noms appropriés Ils doivent être très descriptifs

Style de programmation Commenter Tout ce qui pourrait ne pas être évident Les commentaires peuvent représenter de 25à 50% du programme Organiser les classes de façon consistante Variables, constructeurs, méthodes publiques et méthodes privées Structurer le code de façon consistante

Style de programmation Éviter toute duplication de code Ne pas cloner le code Créer plutôt une méthode (privée) regroupant le code commun

Style de programmation Se conformer aux bons principes de l’orienté objet Minimiser le nombre de méthodes publiques Bien séparer les interfaces et l’application

2.10 Risques et difficultés liés à la programmation orientée objet Les langages sont en constantes évolution L’efficacité peut être quelques fois problématique