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

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

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

Transcription

1 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 Patron/Masque de conception n Solution abstraite réutilisable indépendante d un langage de programmation n Exprimé sous forme d architecture reliant quelques classes très abstraites n Raisons de l utilisation ou pas du pattern n Conséquences liées à l utilisation du pattern n Suggestions pour implanter la solution. Design patterns - avantages 3 v Vocabulaire commun v Capitalisation de l expérience v Niveau d abstraction plus élevé => meilleures constructions logicielles v Réduction de la complexité v Catalogue de solutions 1

2 Design patterns - inconvénients 4 v Effort de synthèse : abstraire, reconnaître v Apprentissage, expérience v Les patterns se dissolvent en étant utilisés v Multiplication des patterns, patterns imbriqués, de niveaux différents Design patterns - GOF 5 v Gamma, Helm, Johnson, Vlissides «Design patterns : elements of reusable object-oriented software» n Édité en 1996 n 23 patterns qui sont la référence v Trois types de patterns n Créateurs n Structuraux n Comportementaux Design pattern createur 6 v Abstraire le processus d instanciation v Rendre indépendant la façon dont les objets sont créés, composés, assemblés, représentés v Encapsuler la connaissance de la classe concrète qui instancie v Cacher ce qui est créé, qui crée, comment et quand 2

3 Singleton 7 v Créateur v Gestion d une classe à instance unique Singleton 8 v Modèle conceptuel Singleton -instance : Singleton +getinstance() : Singleton Singleton 9 v Exemples n Gestion du son, de textures n Gestion d une connexion entre un client et un serveur unique n Gestion du temps dans un jeu n Pool de connexion à une BD n Printer spooler, file system, windows manager 3

4 Singleton 10 v Implantation package singleton; public class Singleton { private static Singleton instance; private int i; public static synchronized Singleton getinstance(){ if (instance == null) instance = new Singleton(); return instance; public void setvalue(int value) { i = value; public int getvalue() { return i; private Singleton() { Singleton 11 v Implantation public class SingletonClient { public static void main(string[] args) { Singleton s = Singleton.getInstance(); System.out.println("La valeur de i est " + s.getvalue()); Singleton s2 = Singleton.getInstance(); System.out.println("La valeur de i est " + s2.getvalue()); // Changement de la valeur du Singleton s.setvalue(20); System.out.println("La valeur de i est " + s.getvalue()); System.out.println("La valeur de i est " + s2.getvalue()); Prototype 12 v Créateur v Gestion du clonage des objets n Permet de faire des copies d objets sans en connaître le type v Exemples n Gestion des monstres dans un jeu vidéo n Simulation de la division cellulaire 4

5 Prototype 13 v Modèle conceptuel Client +getprototype() * * PrototypeAbstrait -att1 : int +clone() : Object +getatt1() : int +setatt1(entrée natt1 : int) PrototypeConcret1 -att2 : int +getatt2() : int +setatt2(entrée natt1 : int) PrototypeConcret2 -att3 : int +getatt3() : int +setatt3(entrée natt1 : int) SousPrototypeConcret1 -att4 : int +getatt4() : int +setatt4(entrée natt1 : int) Prototype 14 v Code classe abstraite public abstract class PrototypeAbstrait implements Cloneable { int att1; public void setatt1(int natt1) { this.att1 = natt1; public int getatt1() { return protected Object clone() throws CloneNotSupportedException { Object object = null; object = super.clone(); // Le clonage copie les attributs membres à membres de l'original vers le clone // ATTENTION AUX ALIAS // Rajouter du code ici pour gérer le pb des alias return object; Prototype 15 v Code classes à cloner public class PrototypeConcret1 extends PrototypeAbstrait { protected int att2=5; public int getatt2() { return att2; public void setatt2(int natt2) { this.att2 = natt2; public PrototypeConcret1() { setatt1(1); 5

6 Prototype v Client 16 PrototypeConcret pc1=new PrototypeConcret(); // Clonage PrototypeConcret pc2 = (PrototypeConcret) pc1.clone(); Builder 17 v Créateur v Classe offrant des moyens de construction d un objet Builder 18 v Modèle conceptuel 6

7 Builder v Exemple n La préparation de pizzas 19 Builder v Code source : le director 20 public class Cook { private PizzaBuilder pizzabuilder; public void setpizzabuilder(pizzabuilder pb) { pizzabuilder = pb; public Pizza getpizza() { return pizzabuilder.getpizza(); public void cookpizza() { pizzabuilder.createnewpizzaproduct(); pizzabuilder.builddough(); pizzabuilder.buildsauce(); pizzabuilder.buildtopping(); Builder v Code source : les constructeurs public abstract class PizzaBuilder { protected Pizza pizza; public Pizza getpizza() { return pizza; public void createnewpizzaproduct() { pizza = new Pizza(); public abstract void builddough(); public abstract void buildsauce(); public abstract void buildtopping(); 21 public class SpicyPizzaBuilder extends PizzaBuilder { public void builddough() { pizza.setdough("pan baked"); public void buildsauce() { pizza.setsauce("hot"); public void buildtopping() { pizza.settopping("pepperoni+salami"); 7

8 Builder 22 v Code source : le produit public class Pizza { private String dough = ""; private String sauce = ""; private String topping = ""; public void setdough(string dough) { this.dough = dough; public void setsauce(string sauce) { this.sauce = sauce; public void settopping(string topping) { this.topping = topping; Builder 23 v Code source : l utilisation Cook cook = new Cook(); PizzaBuilder hawaiianpizzabuilder = new HawaiianPizzaBuilder(); PizzaBuilder spicypizzabuilder = new SpicyPizzaBuilder(); cook.setpizzabuilder(hawaiianpizzabuilder); cook.constructpizza(); Pizza pizza = cook.getpizza(); Design patterns structuraux 24 v Comment les objets sont assemblés v Les patterns sont complémentaires les uns des autres 8

9 Composite 25 v Structurel v Composition d objets dans des structures de type arbre Composite 26 v Modèle conceptuel Client Noeud +operation() +add() +remove() +getchild() * NoeudTerminal NoeudNonTerminal +add() +remove() +getchild() 1 Composite 27 v Exemple n JPanel n Menus dans une application n Système de fichiers 9

10 Composite 28 v Exemple le système de fichiers SGF ElementStockage * 1 * Fichier Repertoire 1 Composite v Code source ElementStockage 29 public abstract class ElementStockage { protected String nome; public ElementStockage(){ nome=""; public ElementStockage(String nom){ nome=nom; public String getnom() { return nome; public void setnomfic(string nomel) { this.nome = nomel; public abstract boolean add(elementstockage e); public abstract boolean remove(elementstockage e); public boolean display(int indentation){ for (int i=0; i<indentation; i++){ System.out.print("\t"); System.out.println(nome); return true; Composite 30 v Code source public class Fichier extends ElementStockage { public Fichier(String nom){ super(nom); public boolean add(elementstockage e){ System.out.println("Impossible de rajouter"); return false; public boolean remove(elementstockage e){ System.out.println("Impossible de supprimer"); return false; public class Repertoire extends ElementStockage{ private ArrayList elements; public Repertoire(String nom){ super(nom); elements=new ArrayList(); public boolean add(elementstockage e){ elements.add(e); return true; public boolean remove(elementstockage e) { elements.remove(e); return true; public boolean display(int indentation) { super.display(indentation); for (int i=0; i<elements.size();i++) { ((ElementStockage)elements.get(i)).display(indentation+1); return true; 10

11 Composite 31 v Code source public class Utilisation { public static void main(string[] args) { Repertoire root=new Repertoire ("Racine"); Repertoire win=new Repertoire("Windows"); Repertoire md=new Repertoire("Mes Documents"); Repertoire win32=new Repertoire("win32"); win.add(win32); root.add(win); root.add(md); root.add(new Fichier("autoexec.bat")); win.add(new Fichier("win.ini")); md.add(new Fichier("projet.doc")); win32.add(new Fichier("calc.exe")); root.display(0); Decorator 32 v Structurel v Ajout dynamique de responsabilités à un objet Decorator 33 v Cas d utilisation n Ajouter des attributs à des objets de façon dynamique et transparente n Pour avoir des attributs optionnels n Quand l héritage n est pas adapté Création de nombreuses sous classes 11

12 Decorator v Avantages n Plus flexible que de l héritage statique n Evite des classes chargées d attributs en haut de la hiérarchie v Inconvénients n Beaucoup de petits objets n Un décorateur et ses composants ne sont pas identiques : attention à la vérification de l identification des objets 34 Decorator 35 v Modèle conceptuel Implémentation Composant Decorateur On construit à la chaîne le composant en créant un nouveau composant qui utilise l ancien avec une décoration supplémentaire Decoration1 Décoration2 Decorator 36 v Exemple Sans décorateur Avec décorateur ElementInterface ZoneTexte 1 -AscVertical 1 1 ZoneTexte DecorateurVisuel AscHorizontal Bordure Ascenseur Bordure Ascenseur Bordure3D BordureSimple AscHorizontal AscVertical Bordure3D BordureSimple AscHorizontal AscVertical 12

13 Decorator v Exemple gestion des logs n Logs sous différentes formes w Affichage console w Affichage swing w Fichier w n Gérer l ajout de deux attributs optionnels : date et heure d ajout d un message dans le log n Solution non retenue = surcharger la classe log pour chaque utilisation => prolifération de classes 37 Decorator v Exemple Les logs n On dispose d un logger permettant d afficher un message dans la console ou dans un Stream n On veut rajouter w Ajouter la date pour chaque message w Afficher les messages dans un JTextArea 38 Decorator v Exemple 39 «interface»logger DefaultLogger DecoratorLogger LoggerWithDate LoggerSwing 13

14 Decorator v Code source la classe à décorer 40 public class DefaultLogger implements Logger { private PrintStream stream; public DefaultLogger() { public DefaultLogger(PrintStream stream) { this.stream = stream; public void setstream(printstream stream) { this.stream = stream; public PrintStream getstream() { return (this.stream!= null)? this.stream : System.out; public String log(string msg) { this.getstream().println(msg); return msg; Decorator 41 v Code source Composant et décorateur public interface Logger { public String log(string msg); public abstract class DecoratorLogger implements Logger { protected Logger logger; public DecoratorLogger(Logger logger) { this.logger = logger; public String log(string msg) { return logger.log(msg); public Logger getlogger() { return this.logger; public void setlogger(logger logger) { this.logger = logger; Decorator 42 v Code sources Les décorations public class LoggerWithDate extends DecoratorLogger { public LoggerWithDate(Logger logger) { super(logger); public String log(string msg) { return "Date : " + LoggerWithDate.getDate(new Date()) + " - " + super.log(msg); public static String getdate(java.util.date date) { SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); return formatter.format(date); public class LoggerSwing extends DecoratorLogger { protected JTextArea txtfieldlog; public LoggerSwing(Logger logger, JTextArea txtfieldlog) { super(logger); this.txtfieldlog = txtfieldlog; public String log(string msg) { txtfieldlog.settext(txtfieldlog.gettext() + "\n" + super.log(msg)); return msg; 14

15 Decorator v Code source les clients class FrameLog extends JFrame { protected JTextArea txtconsolelog; public FrameLog(String title){ this.settitle("logger : " + title); this.setsize(300, 300); txtconsolelog = new JTextArea(); this.getcontentpane().add(txtconsolelog); this.setdefaultcloseoperation(jframe.dispose_on_close); public JTextArea getfieldlog() { return this.txtconsolelog; public class Client { public static void main(string[] args) { FrameLog framelog = new FrameLog("TestLogger"); framelog.show(); Logger logger = new DefaultLogger(); // Ajoute une fonctionnalité (date) LoggerWithDate loggerwithdate = new LoggerWithDate(logger); // Ajoute la fonctionnalité : Swing LoggerSwing loggerswing = new LoggerSwing(loggerWithDate, framelog.getfieldlog()); // Affiche un log logger.log("test1"); // Affiche le log dans le Swing loggerswing.log("test2"); // Affiche le log dans le swing (sans date) loggerswing.setlogger(logger); loggerswing.log("fin"); 43 Design patterns comportementaux v Description n D algorithmes n De comportements entre objets n De formes de communication entre objets 44 Observer v Comportemental v Définition de dépendances entre objets v Lorsque le sujet change d'état, les observateurs en sont avertis automatiquement 45 15

16 Observer 46 v Cas d'utilisation n Un objet dispose de plusieurs "listeners" n Le changement d'un objet se répercute vers d'autres n Un objet doit prévenir d'autres objets sans les connaître Observer v Modèle conceptuel 47 Observer 48 v Deux règles n Le sujet ne sait rien de l'observateur n L'observateur ne modifie jamais le sujet è Séparation sujet/observateur 16

17 Observer 49 v Exemples n Un histogramme et un camembert qui bougent lorsqu'on change les valeurs d'une colonne dans Excel n Eclipse/jigloo : le plugin positionne sur le code source lorsque l'on clique sur un élément graphique n Forum de discussions : ex mailing automatique des modérateurs lors d'un nouveau message Observer 50 v Exemple : la boutique en ligne v Une boutique souhaite offrir un cadeau à chacun de ses clients par tranche de 10 produits commandés dans un même pannier Observer 51 v Exemple : la boutique en ligne 17

18 Observer 52 v La boutique code source l'observé public class Pannier extends Observable{ private int nbpdtscdes; private ArrayList lignescommande; private ArrayList cadeaux; private String leclient; public Pannier(String c) { nbpdtscdes=0; lignescommande=new ArrayList(); cadeaux=new ArrayList(); leclient=c; public void ajouterarticle(string ref, int qte) { // l'ajout de la ligne de cde nbpdtscdes++; setchanged(); notifyobservers(); // Appelle Update de la Boutique public int getnbproduitscdes() {return nbpdtscdes; public String getclient(){return leclient; public void addcadeau(string c){ cadeaux.add(c); Observer 53 v Exemple la boutique l'observeur public class Boutique implements Observer{ private Pannier pannier; private ArrayList cadeaux; public Boutique() { pannier=null; cadeaux = new ArrayList(); String c1="cadeau1"; cadeaux.add(c1); String c2="cadeau2";cadeaux.add(c1); String c3="cadeau3";cadeaux.add(c1); public void ajouterpannier(pannier p) { p.addobserver(this); public void update(observable o, Object arg) { pannier=(pannier)o; System.out.println("update du sujet "+pannier.getclient()); if (pannier.getnbproduitscdes()%3==0) { pannier.addcadeau((string)cadeaux.get(pannier.getnbproduitscdes()/10)); Observer 54 v Exemple la boutique - utilisation public class Utilisation { public static void main(string[] args) { Boutique b=new Boutique(); Pannier p1=new Pannier("Dupont"); Pannier p2=new Pannier("Durant"); p1.addobserver(b); p2.addobserver(b); p1.ajouterarticle("cle de 12",3); p2.ajouterarticle("ampoule 100W",1); p1.ajouterarticle("tournevis",1); p1.ajouterarticle("boulons",100); 18

19 Iterator 55 v Comportemantal v Permet d'accéder à tous les éléments d'un agrégat séquentiellement sans exposer sa stucture interne Iterator 56 v Cas d'utilisation n Besoin d'accéder à une liste d'éléments suivant un moyen précis w Croissant w Décroissant w Insertion n Besoin d'appliquer une filtre particulier à une liste (sélectionner les éléments qui commencent par 'a'...) Iterator 57 v Modèle conceptuel 19

20 Iterator 58 v Avantages n Fournit plusieurs moyens de parcourir unr relation tout-partie n Simplifie l'ajout de parties dans une relation tout-partie n Simplifie la navigation dans des hiéracrchies tout-partie n Simple d'utilisation en permettant au client de traiter de manière générique le tout ou ses parties Iterator 59 v Exemple : le framework Collection en Java Iterator 60 v Exemple LinkedList List list=new LinkedList(); list.add(new String("mot1")); list.add(new String("mot2")); list.add(new String("mot3")); ListIterator iterator=list.listiterator(); while (iterator.hasnext()){ String contenu=(string)iterator.next(); System.out.println(contenu); if (contenu.compareto("mot2")==0) { iterator.remove(); iterator.add(new String("mot4")); while (iterator.hasprevious()){ String contenu=(string)iterator.previous(); System.out.println(contenu); 20

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

Stéphane Gobron HES SO HE Arc ISIC

Stéphane Gobron HES SO HE Arc ISIC Stéphane Gobron HES SO HE Arc ISIC 2015 Où en sommes nous? Plan de cours Ch.1 : OO Rappels Ch.2 : Etude de cas => le bridge DP Ch.3 : Conceptualisation, Singleton et Composite DPs Ch.4 : Decorator, State,

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

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

Les «Design Patterns» Bruno Mermet Université du Havre 2007-2008

Les «Design Patterns» Bruno Mermet Université du Havre 2007-2008 Les «Design Patterns» Bruno Mermet Université du Havre 2007-2008 Introduction Origine Design Patterns, Elements of Reusable Object-Oriented Software, E. Gamma, R. Helm, R. Johnson, J. Vlissides, Addison-Wesley,

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

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

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

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

TD : Compilation d exercices et d extraits d examens

TD : Compilation d exercices et d extraits d examens TD : Compilation d exercices et d extraits d examens 1. Classes et visibilité a. Parmi les appels suivant indiquez ceux qui sont corrects et ceux qui ne le sont pas public class A { public int i ; private

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

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

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

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

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

JavaScript Design Pattern. DIALLO Hady, BAH Alhassane, DIALLO Amadou, NGALEU Harold Fred

JavaScript Design Pattern. DIALLO Hady, BAH Alhassane, DIALLO Amadou, NGALEU Harold Fred JavaScript Design Pattern DIALLO Hady, BAH Alhassane, DIALLO Amadou, NGALEU Harold Fred Patterns & Catégories Moyen d accomplir un objectif Offre une solution à un problème Fondamentalement destiné à être

Plus en détail

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe.

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe. Plan du cours Syntaxe abstraite Martin Odersky 21 et 22 novembre 2005 version 1.0 1 2 3 Syntaxe abstraite Martin Odersky 1 de 31 Syntaxe abstraite Martin Odersky 2 de 31 Un analyseur syntaxique fait généralement

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

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

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

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

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

Programmation orientée objets

Programmation orientée objets POO : mais pourquoi? La Programmation Orientée Objets (POO) a pour but final de faciliter le débogage, la maintenance et la mise à jour d'applications complexes. C++, Java et Scala sont des exemples de

Plus en détail

Aspects Objets avancés dans le langage Java

Aspects Objets avancés dans le langage Java POO Programmation Impérative Programmation orientée Objet et modélisation UML Aspects Objets avancés dans le langage Java Collections Concepts Objet Avancés Apis Exception classes abstraites Interface

Plus en détail

IFT2255 - Génie logiciel. L activité de conception. L activité de conception. Types de conception. Conception

IFT2255 - Génie logiciel. L activité de conception. L activité de conception. Types de conception. Conception IFT2255 - Génie logiciel Conception L activité de conception Bruno Dufour dufour@iro.umontreal.ca L activité de conception 3 Types de conception 4 Étape cruciale du développement logiciel analyse conception

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

Génie Logiciel - Patrons de conception (M3-105)

Génie Logiciel - Patrons de conception (M3-105) PhD, Equipe HuLTech, GREYC-CRNS UMR 6072 Vacataire Université de Caen Basse-Normandie, Campus 2 IUT de Caen, Antenne d Ifs, Département Informatique 6, boulevard du Maréchal Juin, 14050 Caen cedex Campus

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

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

Composite & décorateur

Composite & décorateur Composite & décorateur Cnam Paris jean-michel Douin Version du 1er Octobre 2005 Notes de cours java : les patterns Les notes et les Travaux Pratiques sont disponibles en http://jfod.cnam.fr/tp_cdi/{douin/

Plus en détail

Projet. Coloration lexicale et indentation de code Java

Projet. Coloration lexicale et indentation de code Java Université Paris Diderot Programmation Orientée Objet L3 Année 2011-2012 Projet Coloration lexicale et indentation de code Java Le but de ce projet est de développer un programme qui prend en entrée un

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

UNE VISION DES DESIGN PATTERNS. 1 Introduction. (brouillon) Revision: 1.36 Date: 2012/11/07 11:16:15

UNE VISION DES DESIGN PATTERNS. 1 Introduction. (brouillon) Revision: 1.36 Date: 2012/11/07 11:16:15 UNE VISION DES DESIGN PATTERNS (brouillon) Revision: 1.36 Date: 2012/11/07 11:16:15 Deux approches pour découvrir les design patterns : la première dit qu il faut les comprendre pour comprendre la programmation

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

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

Introduction au langage Java

Introduction au langage Java Introduction au langage Java Nicolas Dumoulin nicolas.dumoulin@cemagref.fr Cemagref Laboratoire d ingénierie pour les systèmes complexes 2010 Notes aux lecteurs Ce document est un support de cours qui

Plus en détail

Programmation PHP Septembre 2010

Programmation PHP Septembre 2010 IFT1147 Programmation Serveur Web avec PHP Plan La POO en PHP Lecture du chapitre 20. Programmation par objets Introduction à la POO Objets et classes Propriétés Méthodes Private Héritage Polymorphisme

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

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

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

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

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

ENSTA : cours IN204 Introduction à JAVA et UML

ENSTA : cours IN204 Introduction à JAVA et UML ENSTA : cours IN204 Introduction à JAVA et UML Thierry Bommart DASSAULT AVIATION DGT/DPR/EOS thierry.bommart@dassault-aviation.fr 01.47.11.54.93 Page : 1 Plan Ecole Nationale Supérieure de Techniques Avancées

Plus en détail

Patrons de conception : Iterator. Patrons de conception. Problèmes récurrents. Patron de conception

Patrons de conception : Iterator. Patrons de conception. Problèmes récurrents. Patron de conception Patrons de conception : Iterator Théorie et pratique de la programmation Michel Schinz 203-03-25 Patrons de conception 2 Problèmes récurrents En programmation, comme dans toute discipline, certains problèmes

Plus en détail

Chapitre 1. 1.1 types primitifs. 1.2 Casting

Chapitre 1. 1.1 types primitifs. 1.2 Casting Chapitre 1 Généralités 1.1 types primitifs byte (1 octet) peut contenir les entiers entre -128 et +127. short (2 octets) contient les entiers compris entre -32768 et +32767. int (4 octet) va de -2*10e9

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

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

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

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

Diagrammes de classe UML

Diagrammes de classe UML labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de classe UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Introduction aux diagrammes de classe Description

Plus en détail

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 Institut Géographique National Laboratoire COGIT GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 28 février 2007 Eric Grosso Résumé : Ce document a pour but de comprendre GeOxygene

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Tp1 Ema EMACS Développement Web

Tp1 Ema EMACS Développement Web Tp1 Ema EMACS Développement Web 1/ Description de l application : Notre première application Web a pour objectif de gérer une liste de todo (truc à faire) : Diagramme de classe simplifié : Application

Plus en détail

Cours 2 : Placer des composants dans une fenêtre

Cours 2 : Placer des composants dans une fenêtre Cours 2 : Placer des composants dans une fenêtre - Les composants graphiques - Les gestionnaires de mise en page : layout - Un exemple complet - Les menus F. Gayral 1 Les composants graphiques : Hiérarchie

Plus en détail

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 II. Programmation par objet 1. Motivation 2. Encapsulation 3. Héritage 4. Initiation à la modélisation

Plus en détail

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main Rappels Java V.Marangozova-Martin 1 Classes, instanciation, objets, main Java est un langage pour la programmation orientée-objet (POO). La programmation par objets permet de structurer les programmes

Plus en détail

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)

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) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir Consignes pour le bons déroulement du devoir - Ce document comporte un QCM et une partie où il faut écrire du code en - Marquez vos réponses au QCM sur la feuille de réponses fournie (notez que certaines

Plus en détail

Cours 1 : Introduction aux patrons

Cours 1 : Introduction aux patrons Cours 1 : Introduction aux patrons Jean-Michel Douin, douin au cnam point fr version : 30 Août 2013 Notes de cours, elles ne remplacent pas la lecture d ouvrages ou de tutoriels sur ce sujet, cf. bibliographie

Plus en détail

5. Collections dans Java. Olivier Curé - UMLV [page 143 ]

5. Collections dans Java. Olivier Curé - UMLV [page 143 ] 5. Collections dans Java Olivier Curé - UMLV [page 143 ] Présentation générale Une collection est un objet qui contient d'autres objets. Ces objets proposent une solution au stockage de données et permettent

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

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

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Cours 1 : Introduction aux patrons

Cours 1 : Introduction aux patrons Cours 1 : Introduction aux patrons jean-michel Douin, douin au cnam point fr version : 10 Septembre 2010 Notes de cours, elles ne remplacent pas la lecture d ouvrages ou de tutoriels sur ce sujet, cf.

Plus en détail

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète Nous allons écrire une application J2EE qui permet dans un navigateur web de gérer des contacts. Pour cela, nous allons suivre

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

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions Arbres binaires Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions FMIN220 Structures de données Université de Montpellier 2015 FMIN220 (UM)

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé Template pour les mails Version 1.0 du 13/04/2010 Etat : Validé SUIVI DES MODIFICATIONS Version Rédaction Description Vérification Date 1.0 A. Lesuffleur création du document 13/04/10 Document validé dans

Plus en détail

Plan. Design patterns. 1. Définition. 1. Définition

Plan. Design patterns. 1. Définition. 1. Définition Plan Design patterns Lionel Seinturier Université des Sciences et Technologies de Lille Lionel.Seinturier@lifl.fr. Définition 3. Patterns 3. Creational patterns 3.2 Structural patterns 3.3 Behavioral patterns

Plus en détail

Cours 4. - Créer des animations : la classe Thread et l'interface Runnable - Quelques composants supplémentaires : le choix dans une liste

Cours 4. - Créer des animations : la classe Thread et l'interface Runnable - Quelques composants supplémentaires : le choix dans une liste Cours 4 - Créer des animations : la classe Thread et l'interface Runnable - Quelques composants supplémentaires : le choix dans une liste JComboBox et JList F. Gayral 1 Rappel : multi-tâches multi-tâches

Plus en détail

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/ JDOM Manipulation de XML avec JDOM et Java 1 JDOM C est quoi? JDOM est une API du langage Java Permet de manipuler des donnés XML plus simplement qu'avec les API classiques Son utilisation est pratique

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

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

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail. JAVA Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.com Historique JAVA est issu d'un projet de recherche chez SUN (fin

Plus en détail

1 ère PARTIE : COURS (sans document) Durée: 1h15

1 ère PARTIE : COURS (sans document) Durée: 1h15 Examen 1 ère session 2012-2013 page 1 NFA 032 - Programmation JAVA IPST-CNAM Programmation JAVA NFA 032 Mercredi 25 Juin 2014 Avec document Durée : 2 h30 Enseignant : LAFORGUE Jacques 1 ère Session NFA

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

Plus en détail

Modélisation Objet. Introduction à JAVA. Georges Linares IUP GMI Université d Avignon et des Pays de Vaucluse

Modélisation Objet. Introduction à JAVA. Georges Linares IUP GMI Université d Avignon et des Pays de Vaucluse Modélisation Objet Introduction à JAVA Historique Les langages objets Simula 67 (trop tôt) Smalltalk 80 : purement objet Objective C : extension du C, esprit Smalltalk C++ : extension du c; le plus utilisé

Plus en détail

Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7

Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7 Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7 Installation du service IIS Fermer toutes les applications ouvertes (par précaution) Ouvrir le panneau de configuration, Programmes,

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques et d Informatique Module : POO Java Semestre : S5 Complément d exercices avec correction

Plus en détail

Une (petite) introduction à Spring

Une (petite) introduction à Spring Une (petite) introduction à Spring 1 Introduction Le framework Spring 1 est une boite à outils très riche permettant de structurer, d améliorer et de simplifier l écriture d application JEE. Spring est

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

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

IN104. Programmation orientée objet Introduction aux objets

IN104. Programmation orientée objet Introduction aux objets IN104 Programmation orientée objet Introduction aux objets Séance de Travaux Dirigés du 24 septembre 2009 B. Monsuez, F. Védrine Exercice 1 Notre compteur en C++ Nous étudions dans cet exercice l exemple

Plus en détail

Les Flux : principes de base

Les Flux : principes de base Les Flux : principes de base Introduction Les flux permettent de travailler avec des données des fichiers provenant de l extérieur. Toutes les commandes de type Ouvrir, Enregistrer, Enregistrer sous des

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

ITI 1521. Introduction à l informatique II

ITI 1521. Introduction à l informatique II ITI 1521. Introduction à l informatique II Marcel Turcotte École d ingénierie et de technologie de l information Version du 14 mars 2011 Résumé Listes chaînées (partie 2) Pointeur arrière Listes doublement

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

PPOOGL. Florent de Dinechin. Java pour les nuls

PPOOGL. Florent de Dinechin. Java pour les nuls PPOOGL Florent de Dinechin Java pour les nuls Java en 30 minutes Introduction Grands principes Pour en finir avec l organisation Types de base et objets Le reste est dans le manuel PPOOGL 1 Introduction

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

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Java Licence professionnelle CISI 2009-2010

Java Licence professionnelle CISI 2009-2010 Java Licence professionnelle CISI 2009-2010 Cours 10 : Type générique (c) http://manu.e3b.org/java/tutoriels/avance/generique.pdf 1 Introduction La programmation générique - nouveauté la plus significative

Plus en détail

Mise à niveau en Java

Mise à niveau en Java Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Stéphane Airiau (Université Paris-Dauphine) - Java Cours 1 1 Aujourd hui Eléments de base Variables, opérateurs, type d une expression

Plus en détail

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes

Plus en détail

Introduction aux Composants Logiciels

Introduction aux Composants Logiciels Introduction aux Composants Logiciels Christian Pérez LIP/INRIA Année 2010-11 Plan Introduction aux composants logiciels Pourquoi des composants logiciels Notions de composants logiciels Conclusion Survol

Plus en détail