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



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

Chapitre VI- La validation de la composition.

TP1 : Initiation à Java et Eclipse

Programmation Par Objets

Initiation à JAVA et à la programmation objet.

Programmation par les Objets en Java

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programmer en JAVA. par Tama

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

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

Programme et contenus Licence d'informatique de Lille, parcours MIAGE, en alternance ou en formation continue (13:40)

as Architecture des Systèmes d Information

Introduction au langage de programmation Java

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

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

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Traduction des Langages : Le Compilateur Micro Java

Cours 1: Java et les objets

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

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

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

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

Programmation Objet Java Correction

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

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Java Licence professionnelle CISII,

Remote Method Invocation (RMI)

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

Bases Java - Eclipse / Netbeans

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

TP1. Outils Java Eléments de correction

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures

Auto-évaluation Programmation en Java

Remote Method Invocation en Java (RMI)

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

IFT2255 : Génie logiciel

TD/TP PAC - Programmation n 3

CQP Développeur Nouvelles Technologies (DNT)

Une introduction à Java

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

Utiliser Java sans BlueJ

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)

3. UML - Unified Modeling Language Diagrammes statiques

Développement Logiciel

TP1 : Initiation à Java et Eclipse

Synchro et Threads Java TM

Systeme d'exploitation

Remote Method Invocation Les classes implémentant Serializable

Premiers Pas en Programmation Objet : les Classes et les Objets

Traitement de données

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

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Java 1.5 : principales nouveautés

Tutoriel d installation de Hibernate avec Eclipse

RMI le langage Java XII-1 JMF

Patrons de Conception (Design Patterns)

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Java Licence Professionnelle CISII,

Annexe : La Programmation Informatique

Cours en ligne Développement Java pour le web

Java c est quoi? Java pourquoi?

Chapitre 10. Les interfaces Comparable et Comparator 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Environnements de développement (intégrés)

Java DataBaseConnectivity

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 )

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

PROGRAMMES EN EPS A L ECOLE PRIMAIRE

Retour d expériences avec UML

TD/TP PAC - Programmation n 3

Support de cours et TD Programmation Orientée Objet

Corrigés des premiers exercices sur les classes

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

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

INITIATION AU LANGAGE JAVA

Tp 1 correction. Structures de données (IF2)

Description de la formation

Information utiles. webpage : Google+ : digiusto/

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

PG208, Projet n 3 : Serveur HTTP évolué

Entraînement au concours ACM-ICPC

F. Barthélemy. 17 mai 2005

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

Descriptif des UE, unités d enseignement, d informatique

IMO - Informatique, modélisation et optimisation

Université de Bangui. Modélisons en UML

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

Transcription:

Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo après la programmation... la conception Comment utiliser les concepts objets pour construire des logiciels. Université Lille 1 - Licence Informatique Conception Orientée Objet 1 Université Lille 1 - Licence Informatique Conception Orientée Objet 2 Fonctionnement équipe pédagogique Damien Cassou, Francesco De Comité, Guillaume Dubuisson, Samuel Hym, Martin Monperrus, Yves Roos, Jean-Christophe Routier, 1h30 de Cours (8 semaines), 2h TD, 1h30 TP par semaine préparer les TD, être acteur! évaluation : TP à rendre régulièrement TP+sup(DS1+2 DS2,3 DS2) première session : 4 seconde session : note TP conservée, TP+3 DS3 4 Université Lille 1 - Licence Informatique Conception Orientée Objet 3 A l issue de ce module vous devriez... maîtriser les concepts de la programmation objet : connaître les différentes manières de mettre en œuvre le polymorphisme : les interfaces, l héritage (les classes abstraites) ; connaître et comprendre un mécanisme de «lookup» de méthode ; connaître quelques principes de conception objet et savoir les mettre en oeuvre ; être en mesure de concevoir une application avec une approche objet : savoir faire une analyse objet d un problème complexe et faire les choix de conception appropriés en utilisant de manière pertinente les concepts et principes des langages à objets ; connaître les principaux patterns de conception («design patterns»), être en mesure d identifier des situations où ils s appliquent et les mettre en œuvre ; adopter une méthodologie de conception rigoureuse : documenter un programme, écrire et utiliser des tests ; Université Lille 1 - Licence Informatique Conception Orientée Objet 4

Pré-requis objet classes et objets instances, constructeurs, méthodes, attributs UML comme notation : diagrammes de classes modélisation objet d un problème analyse d un problème simple, identification des classes et leur conception, polymorphisme des objets les interfaces, inclusion de type, généralisation/spécialisation (upcast/downcast) Principe Ouvert-Fermé (Open Close Principle OCP) Université Lille 1 - Licence Informatique Conception Orientée Objet 5 Pré-requis java class, this, private, public tostring, equals/==, compareto/interface Comparable static, enum interface exceptions : capture et levée try... catch, throws/throw java.util : Collection<E>, Iterator, Iterable List/ArrayList/LinkedList, Set, Map/HashMap, hashcode package, import javac, java, jar, javadoc, classpath, tests Le TP4 de POO à (re)faire (voir semainier) Université Lille 1 - Licence Informatique Conception Orientée Objet 6 Exemple : épreuves sportives. différentes épreuves : 4 100-4 nages, perche, slalom géant, marathon, semi-marathon, plongeon, tremplin, disque, etc. elles appartiennent à des disciplines : athlétisme : perche, marathon, semi-marathon, disque natation : 4 100-4 nages, plongeon ski : slalom géant, tremplin elles correspondent à des épreuves de différentes natures : course : 4 100-4 nages, slalom géant, marathon, semi-marathon saut : perche, tremplin lancer : disque Fonctionnalités/besoins : une épreuve olympique fournit son record olympique (un temps, une distance ou des points) un marathon fournit la ville où il a lieu une course fournit sa distance et son record (un temps) que l on doit pouvoir modifier un lancer fournit son record (une distance) les jeux olymiques sont composés d une liste d épreuves olympiques un décathlon n est composé que d épreuves d athlétisme un record fournit une version affichable de sa valeur elles sont olympiques (ex : marathon) ou non (ex : semi-marathon) Université Lille 1 - Licence Informatique Conception Orientée Objet 7 Université Lille 1 - Licence Informatique Conception Orientée Objet 8

Exercice Proposez un schéma UML faisant apparaître les types indiqués et permettant de respecter les contraintes. Université Lille 1 - Licence Informatique Conception Orientée Objet 9 Université Lille 1 - Licence Informatique Conception Orientée Objet 10 Exercice Proposez un diagramme UML pour la classe Marathon. Comment gérer les records? Polymorphisme avoir plusieurs points de vue sur un même objet pouvoir utiliser un objet dans plusieurs contextes Polymorphisme = «plusieurs formes» Objet plusieurs types Distinguer classe de l objet et type d une référence sur l objet. TypeRef ref = new UneClasse(); TypeRef et UneClasse doivent être compatibles mais pas nécessairement identiques. Université Lille 1 - Licence Informatique Conception Orientée Objet 11 Université Lille 1 - Licence Informatique Conception Orientée Objet 12

C est quoi «compatible»? T ref = new Marathon(...) Quels sont les types possibles pour T? Un objet est du type de sa classe et de toutes les interfaces implémentées par sa classe. une instance de Marathon est à la fois de type : Marathon, Athlétisme, Course, Olympique (et Object) Upcast et Downcast UpCast C est quoi? Changer vers une classe moins spécifique (toujours possible vers Object) : généralisation, opération sûre. Marathon m = new Marathon(); // Un exemple d upcast? légal? illégal? Course c = m; // UPCAST Natation n = m; // illégal : détecté à la compilation DownCast C est quoi? Changer vers une classe plus spécifique : spécialisation, opération à risque. Marathon m = new Marathon(); Course c = m; // Un exemple de downcast? légal? illégal? Marathon m2 = (Marathon) c; // DOWNCAST SlalomGeant sg = (SlalomGeant) c; // DOWNCAST illégal compile! exception Université Lille 1 - Licence Informatique Conception Orientée Objet 13 Université Lille 1 - Licence Informatique Conception Orientée Objet 14 JeuxOlympiques - epreuves : List<Olympique>... + affichertouslesrecords() s Donnez la signature d une méthode permettant d ajouter une épreuve. Donnez le code de la méthode affichertouslesrecords. Late-binding Edition de liens tardive (late-binding) Le type de la référence détermine les envois de message autorisés compilation La classe de l objet détermine le traitement réalisé. exécution public void addepreuve(olympique e) { this.epreuves.add(e); Comment/pourquoi ça marche? public void affichertouslesrecords() { for(olympique e : this.epreuves) { System.out.println(e.recOlymp()); debugger Université Lille 1 - Licence Informatique Conception Orientée Objet 15 Université Lille 1 - Licence Informatique Conception Orientée Objet 16

Principe Ouvert Fermé Au programme On ajoute l épreuve 110m haies. Que faut-il changer? (dans JeuxOlympiques par exemple) Pourquoi? Conclusion? OCP Un code doit être ouvert à l extension et fermé à la modification. On doit pouvoir ajouter des éléments sans perturber l existant. héritage, un autre outil pour le polymorphisme extends, lookup, super, classes abstraites conception, comment bien exploiter les concepts objets principes de conception patrons de conception (design patterns) à travers des exemples et au passage types génériques classes internes interfaces graphiques (swing) : les principes Université Lille 1 - Licence Informatique Conception Orientée Objet 17 Université Lille 1 - Licence Informatique Conception Orientée Objet 18