Intention Séparer et extraire les traitements appliquées à différents type de nœuds d’une structure.

Slides:



Advertisements
Présentations similaires
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Advertisements

Introspection et Réflexion Manipulation dynamique de code Java.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
L’ interruption de boucle
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
1 Tableaux des objets C++ si on connaît le nombre dobjets nécessaires davance on peut utiliser des tableau dobjets dans les fonctions dusage class Personne.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
la programmation en langage C
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
JAV - TD 6 Structures de données JAVA
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Les fonctions en Java Partie I Le type void. Dans cette rapide présentation, je vais expliquer :.à quoi servent les fonctions.à quoi faut-il penser avant.
Chapitre IV Object, interfaces, classes imbriquées.
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
Pattern État PowerPoint 2003, télécharger la visionneuse PowerPoint Viewer dernière édition si vous ne lavez pas…télécharger la visionneuse PowerPoint.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
1 Cours JAVA / Y.Laborde Java : Les types génériques ( ) LES TYPES GENERIQUES : Introduction (diapo 2) Déclaration dun type générique (3) 1re déclaration.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Langage Oriente Objet Cours 4.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Laboratoire d'Informatique de l’Université de Franche-Comté
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
Design Pattern Memento. Principe : Enregistrer les changements d'états d'un objet Objectif : Pouvoir restituer les états précédents d'un objet.
Design Pattern: Decorator
IFT 6800 Atelier en Technologies d’information
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
Cours 5 Héritage, Interfaces, classes internes. POO-L3 H. Fauconnier2 La classe Object Toutes les classes héritent de la classe Object Object méthodes:
COURS DE PROGRAMMATION ORIENTEE OBJET :
1 Fonction : surcharge de sélection La surcharge de sélection consiste à implanter plusieurs méthodes de même nom dans une même classe à condition que.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
CSI1502 Principes fondamentaux en conception des logiciels
Les piÈces de la maison.
Une introduction à Java
Les méthodes en java • Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. • Une méthode pour être utilisée.
Structures de données IFT-2000
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
Informatique et science du numérique
Intention Séparer les traitements appliquées à différents type de nœuds d’une structure à l’algorithme de parcours.
Folder in depth Programme de statistique et de recherche de fichiers Jonas Berdoz Marjolaine Steiner Julien Tissot.
J201 (JOC) Java Avancé juin 2007 ~ Brigitte Groléas ~
Notion de fonction A partir d’un exemple Types de fonctions
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
La notion de type revisitée en POO
11/04/ L'héritage Cours 7 Cours 7.
Cours 7 Classes locales Clonage Divers: tableaux.
Tutorat en bio-informatique
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Un visiteur… …venu d’ailleurs
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 2.
Transcription de la présentation:

Intention Séparer et extraire les traitements appliquées à différents type de nœuds d’une structure

Motivations Permet l’ajout de nouveaux types d’actions sur les objets de la structure sans les modifier Exemple : Système de fichier Renommage massif Extraction selon type (*.png,*.jpg,… -> Images)

Utilisation Structure contenant un nombre de différent types de nœud fixe Structure sur laquelle on peut envisager d’appliquer plusieurs type de traitements Exemple : Système de fichiers Compilateurs (variables, fonctions, opérateurs, …) Liste de produits

Exemple d’implémentation Eléments : Chambre à coucher WC Cuisine Salon … Visiteurs : Ménagère Peintre Décorateur Voleurs

Interface visiteur public interface Visiteur { void visit(Bureau p); void visit(ChambreACoucher p); void visit(SalleDeBain p); void visit(Sallon p); void visit(Terrasse p); void visit(Toilettes p); }

Menagère public class Menagere implements Visiteur public void visit(Bureau p) { System.out.println("Nettoie bureau"); public void visit(Toilettes p) { System.out.println("Nettoie les toilettes"); } }System

Voleur public class Voleur implements Visiteur { private int nbObjetsVoles; public int getNbObjetsVoles() { return nbObjetsVoles; public void visit(Bureau p) { System.out.printf("%20s --> %s\n", p.getClass().getSimpleName()," Vol l'ordinateur"); nbObjetsVoles++; public void visit(Toilettes p) { System.out.printf("%20s --> %s\n", p.getClass().getSimpleName()," Vol la brosse"); nbObjetsVoles++; } }System

Principal public static void main(String[] args) { int nbPieces = 10; List pieces = new LinkedList (); Visiteur visiteur = new Menagere(); String[] typePieces = {"Bureau", "ChambreACoucher", "SalleDeBain", "Sallon", "Terrasse", "Toilettes"}; // Generation d'une maison aléatoire for (int i = 0; i < nbPieces; i++) { pieces.add(newPieceAleatoire(typePieces)); } // Afficher la structure de la maison System.out.println("Pieces : "); for (Piece p : pieces) { System.out.println(" - " + p.getName()); } System.out.println(); // Action sur la maison for (Piece p : pieces) { p.accept(visiteur); } }String System