Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

Dimension: px
Commencer à balayer dès la page:

Download "Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003."

Transcription

1 JAVA et Design Pattern Page 1/26 JAVA et Design Pattern Etude des Pattern Design Modélisation UML, Etude et critique des implémentations Java Par Laurent DESECHALLIERS Mastère Spécialisé en Management de Projets en Milieu Industriel CESI de Rouen Promotion 2002/2003 Avril 2003 Membres du Jury : Farid BAGUI Gilles BIAGETTI Aurelie DUMARCHE

2 JAVA et Design Pattern Page 2/26 Table des matières 0.Objectifs, démarche et outils 1.Le pattern Observer 1.1 Diagrammes de classes et de séquence 1.2 Diagramme d'état transition 1.3 Le pattern Observer en Java Diagrammes des classes de test Source de la classe ObservableTest Source de la classe ObserverClass Source de la classe Start (fonction main) 1.4 Analyse des Observer/Observable du SDK Sun Source de la méthode notifyobserver Source de l'interface Observer Schéma d'un scénario des ''faiblesses'' d'identification observateur/observé Proposition d'une solution aux ''faiblesses'' d'identification observateur/observé Source de la solution Scénario de test 2.Le Pattern Design Template Method 2.1 Exemple du tri à bulle 2.2 Schéma UML du Template Method 3.Le pattern Factory 3.1 Présentation du Patern Factory 3.2 Présentation(suite)du Patern Factory 4.Le pattern Strategy 4.1 Problèmatiques des différenciations 4.2 Problèmatiques des stratégies multiples 4.3 Diagrammes et avantages 5.Conclusion 6.Bibliographie et ressources diverses

3 JAVA et Design Pattern Page 3/26 0. Objectifs, démarche et outils 0.1 Les objectifs visés Apprendre à maîtriser certains Design Pattern afin de passer à un niveau suppérieur en architecture logicielle. 0.2 La démarche suivie Lecture d'un ouvrage de référence et d'une série d'articles parus dans le magazine Login. Réflexion sur les Design Pattern et essais de modélisation et de transposition des Design Pattern sur des cas concrets d'architecture logicielle Développement en Java de ces Design Pattern Modélisation UML puis Analyse des forces et faiblesses d'une implémentation Java d'un Design Pattern Observer 0.3 Les outils utilisés Jbuilder 8.0 Multi-plateforme/développé en Java Simple et convivial Offre une version community N'enferme pas dans des structures de fichiers propriétaires Poseidon UML for Community Multi-plateforme/développé en Java Offre une version community Moins 'obèse' et tout aussi valable que Rationnal Rose Open Office Raisons identiques aux deux softs précédents

4 JAVA et Design Pattern Page 4/26 1.Le pattern Observer 1.1 Diagrammes de classes et de séquence

5 JAVA et Design Pattern Page 5/26 1. Le pattern Observer 1.2 Diagramme d'état/transition

6 JAVA et Design Pattern Page 6/26 1. Le pattern Observer 1.3 Test de l'observateur en Java Diagrammes des classes de test

7 JAVA et Design Pattern Page 7/26 1.Le pattern Oberver 1.3 Test de l'observateur en Java Source de la classe ObservableTest package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers */ public class ObservableTest extends Observable // START CLASS // public ObservableTest() super(); System.out.println("Costructeur de l'objet Observable"); // public synchronized void setchanged() super.setchanged(); //notifyobservers(); System.out.println("Statut Observé est : a changé"); // protected synchronized void setchanged(object arg) super.setchanged(); notifyobservers(arg); // public void notifyobservers(object arg) super.notifyobservers(arg) ; System.out.println("L'observé Notifie les objets Observateur"); // public void notifyobservers() System.out.println("L'observé Notifie les objets Observateur"); super.notifyobservers(null) ;

8 JAVA et Design Pattern Page 8/26 // public void addobserver(observerclass1 o) super.addobserver(o); System.out.println("L'observé "+ o.getclassname() + " ajouté à la liste des observateurs"); // public void deleteobserver(observerclass1 o) super.deleteobserver(o); System.out.println("L'observé "+ o.getclassname() + "supprimé à la liste des observateurs"); // END CLASS *****************************************************************

9 JAVA et Design Pattern Page 9/26 1.Le pattern Observer 1.3 Test de l'observateur en Java Source de la classe ObserverClass1 package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers 1.0 */ public class ObserverClass1 implements Observer // START CLASS ********************************************************* protected String internal_class_name = new String(); // public ObserverClass1(String class_name) internal_class_name = class_name; System.out.println("L'objet "+ internal_class_name+" est vivant"); // public String getclassname() return internal_class_name; // public void update(observable o, Object arg ) System.out.println("L'objet "+internal_class_name+" a été notifié");

10 JAVA et Design Pattern Page 10/26 1.Le pattern Observer 1.3 Test de l'observateur en Java Source de la classe Start (fonction main) package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers 1.0 */ public class start public static void main(string[] args) ObservableTest Observe1 = new ObservableTest() ; ObserverClass1 Observateur1 = new ObserverClass1("Obs1"); ObserverClass1 Observateur2 = new ObserverClass1("Obs2"); ObserverClass1 Observateur3 = new ObserverClass1("Obs3"); ObserverClass1 Observateur4 = new ObserverClass1("Obs4"); Observe1.setChanged() ; Observe1.addObserver(Observateur1) ; Observe1.addObserver(Observateur2) ; Observe1.addObserver(Observateur3) ; Observe1.addObserver(Observateur4) ; Observe1.notifyObservers() ;

11 JAVA et Design Pattern Page 11/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Source de la méthode notifyobserver (SDK Sun Java 2 V. 1.4) public void notifyobservers(object arg) /* * a temporary array buffer, used as a snapshot of the state of * current Observers. */ Object[] arrlocal; synchronized (this) /* We don't want the Observer doing callbacks into * arbitrary code while holding its own Monitor. * The code where we extract each Observable from * the Vector and store the state of the Observer * needs synchronization, but notifying observers * does not (should not). The worst result of any * potential race-condition here is that: * 1) a newly-added Observer will miss a * notification in progress * 2) a recently unregistered Observer will be * wrongly notified when it doesn't care */ if (!changed) return; arrlocal = obs.toarray(); clearchanged(); for (int i = arrlocal.length-1; i>=0; i--) ((Observer)arrLocal[i]). update(this, arg);

12 JAVA et Design Pattern Page 12/26 1.Le pattern Observer 1.4 Analyse des Observer/observable du SDK Sun Source de l'interface Observer (SDK Sun Java 2 V. 1.4) Source : Observer.java SDK Sun 1.4 public interface Observer void update(observable o, Object arg); Source : Observable.java SDK Sun 1.4 public void notifyobservers(object arg) Object[] arrlocal; synchronized (this) if (!changed) return; arrlocal = obs.toarray(); clearchanged(); for (int i = arrlocal.length-1; i>=0; i--) ((Observer)arrLocal[i]).update(this,arg); Aucune sécurité d'exécution de l'implémentation de la méthode public update des classes utilisant l'interface observer.

13 JAVA et Design Pattern Page 13/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Schéma d'un scénario des ''faiblesses'' d'identification observateur/observé

14 JAVA et Design Pattern Page 14/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Proposition d'une solution aux ''faiblesses'' d'identification observateur/observé Avantages de la solution utilisant untemplate Method Sécurisation de la liaison observateur/observé On conserve la notion de 'contrat' Désavantage On perd la capacité d'hériter des classes observatrices (Peut y remédier par une composition ou agrégation)

15 JAVA et Design Pattern Page 15/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Source de la solution package observateur; import java.util.*; public class obs1templatemethod implements Observer protected String internal_class_name = new String(); protected ObservableTest _observable; // public obs1templatemethod() // public obs1templatemethod (String class_name, ObservableTest o) internal_class_name = class_name; System.out.println("L'objet "+ internal_class_name+" est vivant"); _observable = o; System.out.println("La classe a observée est mémorisée"); // public String getclassname() return internal_class_name; // public void update(observable o, Object arg ) System.out.println("Test sé&curité notification partie update"); if (o==_observable) System.out.println("L'objet "+internal_class_name+" est bien le bon appelant"); System.out.println("L'objet "+internal_class_name+" est mis à jour"); this.updatedifference(o,arg); else System.out.println("L'objet est malicieux"); ; // protected void updatedifference(observable o, Object arg )

16 JAVA et Design Pattern Page 16/26 1.Le pattern Oberver 1.4 Analyse des Observer/Observable du SDK Sun Source de la solution package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers 1.0 */ public class obstype2 extends obs1templatemethod public obstype2(string class_name, ObservableTest o) super(class_name,o); protected void updatedifference(observable o, Object arg ) System.out.println("L'objet "+internal_class_name+" a été notifié / partie updatedifférence du la classe fils");

17 JAVA et Design Pattern Page 17/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Scénario de test Source du test // Véritable objet observé ObservableTest ObjetObserve = new ObservableTest(); // Objet Observable malicieux ObservableTest ObjetObserveMalicieux = new ObservableTest(); // Observateur du test obstype2 Observateur1 = new obstype2("obs1",objetobserve); System.out.println("Test du bon objet observé"); ObjetObserve.setChanged() ; ObjetObserve.addObserver(Observateur1); ObjetObserve.notifyObservers(); System.out.println(" "); System.out.println("Test dd l'objet malicieux"); Observateur1.update(ObjetObserveMalicieux, null); Traces du test L'objet Obs1 est vivant La classe a observée est mémorisée Test du bon objet observé Statut Observé est : a changé L'observé Notifie les objets Observateur Test s&curité notification partie update L'objet Obs1 est bien le bon appelant L'objet Obs1 est mis à jour L'objet Obs1 a été notifié / partie updatedifference du la classe fils Test de l'objet malicieux Test sécurité notification partie update L'objet est malicieux

18 JAVA et Design Pattern Page 18/26 2.Le pattern Template Method 2.1 Exemple du tri à bulle Algo Tri a bulle sur une suite A n d'éléments dont le type n'est pas définit Si A n+1 <A n alors permute A n et A n Problème de redondance d'éléments à trier nombre réels chaines de caractère de code pour chaque type Il faut donc définir une structure générique d'un algoritme dont on déléguera certaines étapes aux sous-classes.

19 JAVA et Design Pattern Page 19/26 2.Le pattern Template Method 2.1 Schéma UML du Template Method Avantage : On obtient un code unique et réutilisable (extension à d'autres type d'éléments à trier).

20 JAVA et Design Pattern Page 20/26 3. Le pattern Factory 3.1 Présentation du Patern factory Objectif Participants et collaborateurs Conséquences Découpler l'instanciation d'une méthode de la classe cliente. Father définit l'interface des classes fils utilisés par des classes clientes. FatherFactory instancie une classes fils de Father en fonction d'un contexte donné. Le polymorphisme de classe découple Father de ses classes utilisatrices. Par ce découplage, on obtient : La possibilité de modifier les implémentations des classes fils de Father sans modifier les classes utilisatrices On peut ajouter des classes fils à Father, voire modifier celles déjà existantes (pour les diviser par exemple) sans avoir a retoucher les classes utilisatrices On peut modifier les règles d'attribution de classes de la Factory sans modifier les classes utilisatrices et Father. On diminue le nombre de classes filles du Client de Father Factory

21 JAVA et Design Pattern Page 21/26 3. Le pattern Factory 3.2 Présentation (suite) du Pattern Factory Les objets sont responsables d'eux même : Father (et ses fils) résolvent la tache qui leur est assigné. FatherFactory choisit la classe la plus adaptée en fonction du contexte donné. En comparaison avec une organisation projet : le choix des membres d'un projet est effectué par un chef de projet et non par les membres (potentiels) du projet. PS : les configurations peuvent être multiples

22 JAVA et Design Pattern Page 22/26 4. Le pattern Strategy 4.1 Problématiques des différentiations On applique une stratégie simple à un objet : exemple du calcul de taxe en fonction du pays. Cas n 1 : on veut différencier (classe E) des éléments (hors stategy) de A Problème : on doit différencier pour chaque statégie explosion des classes

23 JAVA et Design Pattern Page 23/26 4. Le pattern Strategy 4.2 Problèmatiques des stratégies multiples Cas n 2 : on veut rajouter une stratégie à deux options Problème : on doit différencier pour chaque statégie explosion des classes Autre possibilité lourde et inélégante : on rajoute deux classes Strategy2_1 et Strategy2_2 dans A. Couplage fourt, perte du polymorphisme.

24 JAVA et Design Pattern Page 24/26 4. Le pattern Strategy 4.3 Diagrammes et avantages Souplesse d'ajout : De type de stratégies D'élément d'un type de stratégie De destruction et remodelage d'un type de stratégie Un couplage faible Découplage Client/configuration Couplage faible configuration/stratégy Aucun couplage Client/Strategy Les objets sont responsables : Chaque Strategy est responsable de sa stratégie Les développeurs sont responsables Simplification du travail en équipe

25 JAVA et Design Pattern Page 25/26 5. Conclusion Ce que ce travail m'a apporté : Mieux appréhender une approche objet non hiérarchisée et monolithique Travailler avec une autre philosophie de conception basée sur l'esthétisme et l'agilité des structures objet (ne pas oublier que les pattern design ont été créés par un architecte et des anthropologues) Regrets : Ne pas avoir réussi à me convaincre de l'utilité du pattern Bridge Ce type d'enseignement et d'autres (Extrem Programming) ne soient : pas enseignés dans les universités et écoles d'ingénieur pas (ou très peu) utilisé dans les entreprises Perspectives d'avenir : Continuer à travailler mes ressources actuelles Lire (et travailler avec ardeur) le livre du ''Gang Of For'' Publier un article sur un Pattern Design dédié aux files d'attentes adapté à des systèmes à contraintes d'exécutions multiples (disques durs par exemple)

26 JAVA et Design Pattern Page 26/26 6. Bibliographie et Ressources Diverses Design Pattern par la pratique. A. Shalloway, J.R. Trott. Eyroles. 249p. ISBN Login n 90 à 97. (série d'articles consacrés au Design Pattern). Sources du SDK v. 1.4 Java de SUN. Je tiens à remercier tout particulièrement les éditeurs et développeurs indépendant offrants des logiciels libres ou des éditions community. Grâce à leurs actions, la maîtrise des systèmes d'information dévient, un peu plus chaque jour, accessible à tous.

Design Pattern (1/3) Design Pattern (2/3)

Design Pattern (1/3) Design Pattern (2/3) Design Pattern (1/3) Un pattern (ou design pattern) décrit : une situation constituant un problème souvent rencontré dans le développement d'applications une (ou plusieurs) solution(s) type(s) à ce problème,

Plus en détail

Patrons Observateur/MVC

Patrons Observateur/MVC Patrons Observateur/MVC programmation évènementielle jean-michel Douin, douin au cnam point fr version : 12 Septembre 2008 Notes de cours 1 Sommaire Patron Observateur Programmation évènementielle Patron

Plus en détail

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux Cours 3 SDA et conception de logiciel Les SDA servent à pouvoir construire des logiciels performants en cherchant à combiner des "briques" dont on sait qu'on pourra les implémenter en utilisant des techniques

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

/~gibson/teaching/designpatterns/designpatterns-mvc.pdf

/~gibson/teaching/designpatterns/designpatterns-mvc.pdf Patron: Modèle-Vue-Contrôleur (MVC) /~gibson/teaching/designpatterns/designpatterns-mvc.pdf MVC.1 Patron: Modèle-Vue-Contrôleur Modèle-Vue-Contrôleur (MVC) est un pattern architectural qui sépare les données

Plus en détail

Design patterns par la pratique

Design patterns par la pratique Alan SHALLOWAY James TROTT Design patterns par la pratique Groupe Eyrolles, 2002 ISBN : 2-212-11139 Table des matières Préface.................................................... XV SECTION I Introduction

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

IFT3912 Développement, Maintenance de Logiciels Démo6 : Les Patrons de Conception Professeur: Bruno Dufor

IFT3912 Développement, Maintenance de Logiciels Démo6 : Les Patrons de Conception Professeur: Bruno Dufor IFT3912 Développement, Maintenance de Logiciels Démo6 : Les Patrons de Conception Professeur: Bruno Dufor Démonstrateurs: Marouane Kessentini I. Définition Hassen Grati Un patron de conception (Design

Plus en détail

les Design Patterns 11/02/2013 labsticc.univ-brest.fr/pages_perso/babau/ Département Informatique, UFR Sciences, UBO Laboratoire Lab-STICC

les Design Patterns 11/02/2013 labsticc.univ-brest.fr/pages_perso/babau/ Département Informatique, UFR Sciences, UBO Laboratoire Lab-STICC labsticc.univ-brest.fr/pages_perso/babau/ les Design Patterns Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Introduction aux Design patterns Quelques Design

Plus en détail

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2. POO 1/3 - Introduction à la Programmation Orientée Objet Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Sommaire Les Langages de Programmation Premier Programme Les Objets Objets

Plus en détail

L2 Informatique - gr A HLIN406-25 mars 2015. Contrôle continu 1

L2 Informatique - gr A HLIN406-25 mars 2015. Contrôle continu 1 L2 Informatique - gr A HLIN406-25 mars 2015 Nom : Prénom : Numéro d étudiant : Contrôle continu 1 Tous documents sur support papier autorisés. Durée : 1h00. L ensemble des réponses sera à donner sur les

Plus en détail

1 Le Parking revisité

1 Le Parking revisité Module I6 - Manipulation de threads II 13 décembre 2012 1 Le Parking revisité Une société de gestion de parkings de voitures souhaite mettre en place un système automatique d affichage en temps réel de

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Plugin Payment-OnLine

Plugin Payment-OnLine Plugin Payment-OnLine Le plugin "Payment-Online" est un plugin technique dont l'objectif est de faciliter l'utilisation du paiement en ligne dans des applications Lutèce. Il se compose d'une librairie

Plus en détail

Correction DS Java 2005 Classe Produit Classe CD

Correction DS Java 2005 Classe Produit Classe CD Correction DS Java 2005 Classe Produit public abstract class Produit { private static int derniernumeroproduit = 1; private int numeroproduit; // Le prix hors taxe du produit private double prix; //Le

Plus en détail

Cours de Programmation Orientée Objet

Cours de Programmation Orientée Objet Contrat et application à la librairie standard JAVA mailto:marc.champesme@lipn.univ-paris13.fr 6 février 2011 1 Qu est ce qu une classe? Un exemple en JAVA Résumé Expression du contrat Par des commentaires

Plus en détail

Mémento Design Patterns

Mémento Design Patterns Quelques Design Patterns Mémento Design Patterns Frédéric MOAL Université d Orléans Scope Purpose Creational Structural Behavioral Factory Method Abstract Factory Builder Prototype Singleton Adapter Proxy

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

Les Design Patterns en Java

Les Design Patterns en Java Les Design Patterns en Java Les 23 modèles de conception fondamentaux Steven John Metsker et William C. Wake Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de vous

Plus en détail

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns?

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns? Noël NOVELLI ; Université de la Méditerranée ; LIF et Département d Informatique Case 901 ; 163 avenue de Luminy 13 288 MARSEILLE cedex 9 Design Patterns D où viennent les design patterns? D où viennent

Plus en détail

MODULE TransportsAbstrait; TYPE Véhicule* = POINTER TO ABSTRACT RECORD prix*: REAL; nbpassmax*: INTEGER END;

MODULE TransportsAbstrait; TYPE Véhicule* = POINTER TO ABSTRACT RECORD prix*: REAL; nbpassmax*: INTEGER END; MODULE TransportsAbstrait; Véhicule = POINTER TO ABSTRACT RECORD prix: REAL; nbpassmax: INTEGER ChoseTransportée =POINTER TO ABSTRACT RECORD poids: REAL; ident: ARRAY 81 OF CHAR PROCEDURE (v: Véhicule)

Plus en détail

Master M1 Informatique: Analyse et Conception des Logiciels

Master M1 Informatique: Analyse et Conception des Logiciels Master M1 Informatique: Analyse et Conception des Logiciels Pascal Molli Juin 2008 Les documents de cours sont autorisés 1 Exercice en 5 lignes maximums répondez aux questions suivantes : 1. Qu est ce

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données 1. Exploiter une couche métier objet PHP prend en charge certains des grands principes du paradigme objet (héritage,

Plus en détail

Patron: Iterator (Itérateur)

Patron: Iterator (Itérateur) Patron: Iterator (Itérateur) http://www-public.telecom-sudparis.eu/~gibson/teaching/designpatterns/designpatterns-iterator.pdf Un itérateur est un objet qui permet de parcourir tous les éléments contenus

Plus en détail

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

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

POO LES EXCEPTIONS LES EXCEPTIONS

POO LES EXCEPTIONS LES EXCEPTIONS CHAPITRE 7 : LES EXCEPTIONS Objectifs spécifiques 1. Introduire la notion d exception, les règles d utilisation et de définition des exceptions. 2. Distinguer entre les exceptions prédéfinies et les exceptions

Plus en détail

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail

Cours Java : deuxième saison

Cours Java : deuxième saison Programmation Objet en Java Cours 9 Design Patterns 1 (C) 2005, Frédéric Peschanski 1 Cours Java : deuxième saison Cours 7 : Exceptions, tests unitaires et assertions Cours 8 : Design Patterns 1 Cours

Plus en détail

La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object

La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object Cours 6 Package Java.Util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object

Plus en détail

Notions d héritage en Java

Notions d héritage en Java EILCO ING 1 - POO Java TP 5 2014/2015 Notions d héritage en Java L héritage est la capacité d une classe (la sous-classe) à hériter des membres (attributs et méthodes) d une autre classe (la super-classe).

Plus en détail

Master M1 Informatique: Analyse et Conception des Logiciels

Master M1 Informatique: Analyse et Conception des Logiciels Master M1 Informatique: Analyse et Conception des Logiciels Pascal Molli et Hala Skaf-Molli 24 Juin 2008 (2ième session) Les documents de cours sont autorisés 1 Exercice en 5 lignes maximums répondez aux

Plus en détail

Les langages informatiques modernes orientés objet permettent la réutilisation Importance de la clarté de la documentation

Les langages informatiques modernes orientés objet permettent la réutilisation Importance de la clarté de la documentation Clues from other disciplines (from E. Gamma) Patrons de conception («Design Patterns») ESIR2, GL (LSI) Benoit Combemale Université de Rennes 1, ESIR & IRISA (Triskell team) Benoit.Combemale@irisa.fr Inspiré

Plus en détail

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Package Java.util Classe générique

Package Java.util Classe générique Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1 Polymorphisme Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Université Lille 1 - Licence Informatique Programmation Orientée Objet 1 des méthodes

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Contrôle de rattrapage Master II I - SRI

Contrôle de rattrapage Master II I - SRI Université de Batna Module : Bases de données orientées objets Faculté des sciences Département d informatique 2012/2013 Durée : 1h30 Le 19/03/2013 Questions de cours (4 pts) Contrôle de rattrapage Master

Plus en détail

EXAMEN DE JAVA 2010-2011

EXAMEN DE JAVA 2010-2011 NOM : PRÉNOM : TP : G TP EXAMEN DE JAVA 2010-2011 Consignes : avec documents, mais sans téléphone, ordinateur ou autre moyen de communication. Durée : 2h Recommandations : Le code doit être écrit en JAVA

Plus en détail

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE INTRODUCTION À JAVA EE 1 LA NÉBULEUSE JAVA Java Micro Edition (JME) développement d applications embarquées Java Standard Edition (JSE) développement d applications classiques Java Enterprise Edition (JEE)

Plus en détail

Conception de logiciels Intranet : patrons et canevas NSY 102

Conception de logiciels Intranet : patrons et canevas NSY 102 NSY102-Chapitre-04_LesDesignPatterns.doc 1/46 23/11/2014 19:40:11 Chapitre 04 Les Design Patterns (ou Patron de Conception) L'objectif de ce chapitre est d'introduire le concept des design patterns en

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 82 Chapitre 5 Programmation orientée objet Amélie Lambert 2014-2015 2 / 82 Plan du cours Analyse, conception et programmation Orientée

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

Cours 1 : Introduction Générale + Objet

Cours 1 : Introduction Générale + Objet Organisation du cours Équipe pédagogique L2 S4 2009 : 2010 Programmation Objet Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet 10 cours de 1h30 o Jean-Claude MARTIN (MARTIN@LIMSI.FR)

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

Plus en détail

TD2 Programmation concurrentielle

TD2 Programmation concurrentielle TD2 Programmation concurrentielle Développement Logiciel (L2-S4) Lundi 10 février 2014 Exercice 1 (Au bar...) Trois clients se trouvent au bar. Il est tard, ils sont fatigués, et ils s endorment sur le

Plus en détail

Design patterns. Design patterns - définition. Design patterns - avantages

Design patterns. Design patterns - définition. Design patterns - avantages Design patterns Conception UML Implantation Java Anne Lapujade 1 Design patterns - définition 2 v Objectif : proposer des solutions standardisées à des problèmes de conception classiques v Design pattern

Plus en détail

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

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions Java Java Modeling Language (JML) Arnaud LANOIX Université Nancy 2 Master1 GL Langage de Programmation Orientée Objet développé par Sun Projet OAK (1991), Java (1995),...Java 1.5 (2004) http://java.sun.com/

Plus en détail

Le Langage Java et le Monde des Objets

Le Langage Java et le Monde des Objets . p.1 Le Langage Java et le Monde des Objets Les principes de la modélisation Orientée Objet. Qu est-ce qu une classe?. Les types de base. Utiliser les classes. Les tentacules de Java. . p.2 Bibliographie

Plus en détail

Composite, Interpréteur et Visiteur

Composite, Interpréteur et Visiteur Composite, Interpréteur et Visiteur Cnam Paris jean-michel Douin Version du 10 Octobre 2003 Notes de cours java : les patterns Composite, Interpréteur et Visiteur Les notes et les Travaux Pratiques sont

Plus en détail

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

[APPLICATON REPARTIE DE VENTE AUX ENCHERES] 2012 Polytech Nice- Sophia El Hajji Khalil Yousfi Hichem SI4 - Log [APPLICATON REPARTIE DE VENTE AUX ENCHERES] Sommaire Architecture de l application... 3 Le Serveur... 3 Le Client... 4 Passage en CORBA...

Plus en détail

NFP121 Programmation Avancée. Relations entre classes

NFP121 Programmation Avancée. Relations entre classes NFP121 Programmation Avancée Relations entre classes Xavier Crégut ENSEEIHT Télécommunications & Réseaux Xavier Crégut (N7) NFP121 Programmation Avancée Relations entre classes

Plus en détail

IK3 : Cours n 3 Gestion de projets

IK3 : Cours n 3 Gestion de projets IK3 : Cours n 3 Gestion de projets semaine du 11 octobre 2010 1 But du cours Il faut comprendre que quelque soit l ampleur d un projet, il existe des outils et des méthodes adaptés qui permettent de le

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Licence Informatique Année 2005-2006

Licence Informatique Année 2005-2006 Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 6 - Correction Héritage Exercice 1 On modélise une application devant servir à l inventaire d une bibliothèque. Elle devra traiter des

Plus en détail

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

3 PHP avancé Les objets : définitions

3 PHP avancé Les objets : définitions Les objets : définitions Structure de données associant des attributs et des méthodes qui décrivent le comportement de l'objet. Héritage de la conception objet (UML). Définie dans une classe. Un objet

Plus en détail

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites Université Paris Diderot JAVA ISIFAR Année 2008-2009 TP n 7 - Correction Exceptions et Classes Abstraites Exercice 1 [Utilisation des Exceptions] La méthode parseint est spécifiée ainsi : public static

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Programmation par Objets

Programmation par Objets Programmation par Objets Licence d'informatique 2004-05 A.Bès 1 - 18h de cours - 4h30 de TD (3 séances) - 18h de TP (6 séances) Organisation Projet commun avec le cours de Développement de Programmes Contenu

Plus en détail

Le langage Java - Syntaxe

Le langage Java - Syntaxe Le langage Java - Syntaxe CLASSES, INSTANCE,MÉTHODES,... CLASSE EN JAVA, PAS À PAS UTILISER DES CLASSES: C O=NEW C() UTILISER LES MÉTHODES: O.M() UNE CLASSE AVEC PLUSIEURS CONSTRUCTEURS LA SURCHARGE DES

Plus en détail

FMIN110- GMIN327. Tableaux (suite) et ArrayList 2014

FMIN110- GMIN327. Tableaux (suite) et ArrayList 2014 FMIN110- GMIN327 Tableaux (suite) et ArrayList 2014 Rappels Tableau : colleccon de valeurs d un même type ordonnées et indexées Type : primicf (int, char,..) ou Classe (String, Appt,..) DéclaraCon d un

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1 Cours 13 Les classes abstraites Les méthodes abstraites Les interfaces F. Gayral 1 Un exemple pour mieux comprendre Pas d'instanciation d'un humain : un humain, c'est - soit un homme - soit une femme Humain

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

Plus en détail

Software Design Description Chat System

Software Design Description Chat System Software Design Description Chat System INSA de Toulouse DGEI 4ème année Informatique Cours de COO - POO Binome A1B2 : BAUDU Justine et Micouin Coralie Sommaire Introduction I) Présentation du contexte

Plus en détail

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

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

LES FICHIERS. 1-169169 JAVA Christine BONNET

LES FICHIERS. 1-169169 JAVA Christine BONNET 12 LES FICHIERS 1-169169 JAVA Christine BONNET LES FLOTS Package java.io La gestion des E/S s'effectue à l'aide des flots. Un stream (flot) représente un canal de communication ( écran, fichier, pipe,

Plus en détail

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Software Design Description

Software Design Description Software Design Description ABSTRACT: KEYWORDS: APPROVED: AUTHOR PROJECT MANAGER PRODUCT OWNER General information/recommendations A SDD provides a representation of a software system created to facilitate

Plus en détail

Programmation Java. Redéfinition de méthode (masquage)

Programmation Java. Redéfinition de méthode (masquage) Programmation Java Programmation objet avec Java Concepts plus avancés Christelle Urtado & Sylvain Vauttier Janvier 2013 Redéfinition de méthode (masquage) Une sous-classe peut redéfinir le code de méthodes

Plus en détail

PARADIGME ORIENTÉ-OBJET

PARADIGME ORIENTÉ-OBJET PARADIGME ORIENTÉ-OBJET A programming paradigm that uses objects to design systems. Sébastien Adam Une introduction des concepts de base 2 Principes fondamentaux Modularité : vise à répartir les opérations

Plus en détail

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

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

Ingénierie des Modèles. Transformations de Modèles

Ingénierie des Modèles. Transformations de Modèles Ingénierie des Modèles Transformations de Modèles Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan Types de transformation Raffinement Projection

Plus en détail

KLIPS - PROJET INTELLIGENCE ARTIFICIEL

KLIPS - PROJET INTELLIGENCE ARTIFICIEL 19/03/2008 EPSI KLIPS - PROJET INTELLIGENCE ARTIFICIEL Christian Couder, Fabien Joubert, Guy-Ludovic Rodriguez Sommaire I Cahier des Charges 1. Les différentes composantes demandées... 3 a. Caractéristiques

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

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

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

PROCEDURE (v: Véhicule) Coût* (nbpass: INTEGER; dist: REAL): REAL, NEW, ABSTRACT;

PROCEDURE (v: Véhicule) Coût* (nbpass: INTEGER; dist: REAL): REAL, NEW, ABSTRACT; MODULE TransportsAbstrait; TYPE Véhicule = POINTER TO ABSTRACT RECORD prix: REAL; nbpassmax: INTEGER ChoseTransportée =POINTER TO ABSTRACT RECORD poids: REAL; ident: ARRAY 81 OF CHAR PROCEDURE (v: Véhicule)

Plus en détail

PASCAL ROQUES. UML par. la pratique. Groupe Eyrolles, 2001, 2002, 2004, 2005, 2006, 2009. ISBN : 978-2-212-12508-5

PASCAL ROQUES. UML par. la pratique. Groupe Eyrolles, 2001, 2002, 2004, 2005, 2006, 2009. ISBN : 978-2-212-12508-5 est f o E Y R O L L E S PASCAL ROQUES UML par la pratique Groupe Eyrolles, 2001, 2002, 2004, 2005, 2006, 2009. ISBN : 978-2-212-12508-5 Sommaire Introduction 9 Objectifs du livre... 9 Structure de l ouvrage...

Plus en détail

Java - Historique. Une introduction à Java. Premier exemple. Aperçu de Java. Processus d obtention d un exécutable. Compilation/interprétation

Java - Historique. Une introduction à Java. Premier exemple. Aperçu de Java. Processus d obtention d un exécutable. Compilation/interprétation Java - Historique Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Collections : Tables associatives

Collections : Tables associatives Table associative Collections : Tables associatives Théorie et pratique de la programmation Michel Schinz 2013-03-18 Rappel : une table associative ou dictionnaire (map ou dictionary en anglais) est une

Plus en détail

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar Programmation - Java - Fiches du Langage Marie Beurton-Aimar Fiche Numéro 1 1.1 Structure d un programme Java Toutes les instructions se terminent par un ; Le nom du fichier qui contient une classe doit

Plus en détail

TP : Mise en oeuvre de MVC

TP : Mise en oeuvre de MVC Université de Lille 1 - Master 1 informatique 2012-2013 IHM TP : Mise en oeuvre de MVC Objectifs se familiariser avec les patrons de conception observateur et stratégie, se familiariser avec la conception

Plus en détail

1.Programmation en Java : notions de base, orienté objet et héritage

1.Programmation en Java : notions de base, orienté objet et héritage Travaux pratique de Méthodologie et Langage de Programmation,, TP1 1 1.Programmation en Java : notions de base, orienté objet et héritage Cette séance de TP a pour objectif d'introduire à la programmation

Plus en détail