Introduction. Les méthodes. Les méthodes. Identité et égalité. Identité et égalité. La copie d'objets. Identité et égalité.
|
|
|
- Lucienne Sauvé
- il y a 10 ans
- Total affichages :
Transcription
1 Introduction La classe object Tous les objets Java héritent de la classe java.lang.object. Elle garantit que tout objet Java contient quelques méthodes fondamentales duplication comparaison Chaque classe est libre de redéfinir ces méthodes Cours Java : les conteneurs 1 Cours Java : les conteneurs 2 Sommaire des Méthodes Les méthodes protected clone() throws CloneNotSupportedException Creates and returns a copy of this Object object. boolean equals(object obj) Indicates whether some other object is "equal to" this one. protected finalize() throws Throwable Called by the garbage collector on an object when void garbage collection determines that there are no more references to the object. Class getclass() Returns the runtime class of an object. int hashcode() Returns a hash code value for the object. void notify()wakes up a single thread that is waiting on this object's monitor. void notifyall()wakes up all threads that are waiting on this object's monitor. String tostring() Returns a string representation of the object. void wait() Causes current thread to wait until another thread invokes the notify() method or the notifyall() method for this object. void wait(long timeout) Causes current thread to wait until either another thread invokes the notify() method or the notifyall() method for this object, or a specified amount of time has elapsed. void wait(long timeout, int nanos)causes current thread to wait until another thread invokes the notify() method or the notifyall() method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed. Cours Java : les conteneurs 3 Les méthodes La méthode tostring() retourne l'objet sous forme d'une chaîne de caractères Object o = new Object(); System.out.println(o); // affiche java.lang.object@cd2d23758 Cette méthode tostring() est très souvent redéfinie par les sous classes. Elle permet d'afficher une représentation de l'objet sous forme de String public class Complexe { protected double partiereelle; protected double partieimaginaire; public Complexe (double r, double i) { partiereelle = r; partieimaginaire = i; public String tostring() {return partiereelle + "+" + partieimaginaire + "i"; public static void main(string[] args) { Complexe c = new Complexe(1.0, 2.0); System.out.println(c); Cours Java : les conteneurs 4 L'opérateur "==" appliqué à des références teste l'égalité des références Complexe c1 = new Complexe (1.0,2.0); Complexe c2 = new Complexe (1.0,2.0); System.out.println(c1 == c2); // affich false; La méthode equals() de la classe Object teste l'égalité entre l'objet qui a appelé la méthode et l'objet passé en argument. Par défaut cette méthode teste, elle aussi, l'égalité sur les références. Il est souvent nécessaire de redéfinir cette méthode en fonction du contenu de l'objet public boolean equals(object o) { if (!(o instanceof Complexe)) return false; Complexe c = (Comlexe)o; return partireelle == c.partiereelle && partieimaginaire == c.partieimaginaire; Cours Java : les conteneurs 5 La méthode equals doit vérifier les propriétés suivantes x.equals(x) true x.equals(y) == true y.equals(x) == true x.equals(y) == true et y.equals(z) == true x.equals(z) == true plusieurs appels successifs de x.equals(y) donnent toujours le même résultat x.equals(null) false Cours Java : les conteneurs 6 La valeur renvoyée par la méthode hashcode() est utilisée dans la méthode tostring() (suit le Object o = new Object(); System.out.println(o); // affiche java.lang.object@cd2d23758 Les valeurs renvoyées par la méthode hashcode() de deux objets x, y tels que x.equals(y) == true doivent être les mêmes La réciproque n'est pas vraie La redéfinition de la méthode equals peut nécessiter de redéfinir la méthode hashcode() pour garantir le bon fonctionnement des conteneurs La copie d'objets La méthode clone() effectue une copie champ à champ de l'objet sur lequel elle est appelée à la condition qu'il ait le type Cloneable (implante l'interface Cloneable). On dit faire une copie en surface L'appel de la méthode clone() dans une classe qui n'implante pas l'interface Cloneable léve l'exception CloneNotSupportedException. Cours Java : les conteneurs 7 Cours Java : les conteneurs 8
2 La copie d'objets abstract class Figure implements Cloneable { try { return super.clone(); catch (CloneNotSupportedException e) { throw new InternalError(); public class Disque { private Point centre; private double rayon; public Disque (Point c, double r) { centre = c; rayon = r; return new Disque(centre, rayon); // Dangereux public class Anneau extends Disque { public Anneau (Point c, double r, double rinterne) {... // pas de redefinition de clone() public static void main (String [] a) { Anneau a = new Anneau(new Point(0.0, 0.0), 2.0, 1.0); Anneau copie = (Anneau) a.clone(); // transtypage incorrect Cours Java : les conteneurs 9 La copie d'objets abstract class Figure implements Cloneable { try { return super.clone(); catch (CloneNotSupportedException e) { throw new InternalError(); public class Disque { private Point centre; private double rayon; public Disque (Point c, double r) { centre = c; rayon = r; Disque d =(Disque)super.clone(); d.centre =(Point)centre.clone(); return d; public class Anneau extends Disque { public Anneau (Point c, double r, double rinterne) {... // pas de redefinition de clone() public static void main (String [] a) { Anneau a = new Anneau(new Point(0.0, 0.0), 2.0, 1.0); Anneau copie = (Anneau) a.clone(); // transtypage OK Cours Java : les conteneurs 10 Les autres méthodes La méthode finalize() est appelée avant que le ramasse miettes récupère la mémoire utilisée par l'objet Cinq méthodes sont utilisées pour mettre en oeuvre la synchronisation de processus léger La méthode getclass() retourne une référence sur un objet de la classe java.lang.class qui décrit la classe de l'objet String s = "coucou"; Class c = s.getclass(); System.out.println(c); // affiche: class java.lang.string Les Conteneurs Cours Java : les conteneurs 11 Cours Java : les conteneurs 12 Introduction Un conteneur est une classe dont le rôle est de stocker, traiter, retrouver une collection d'objets. Un exemple de conteneur (ou dit aussi collection) est le tableau Les différents conteneurs se distinguent en fonction de l'interface : accès aux éléments des implémentations : stockage, rangement des éléments des algorithmes : recherche, tri, parcours En java il y a deux types d'interface de conteneurs disponibles Cours Java : les conteneurs 13 Cours Java : les conteneurs 14 Collection est l'interface racine. Elle permet de désigner un ensemble d'objets. Certaines implantations autoriseront la présence de plusieurs éléments identiques d'autres non. Certaines implantations auront leurs éléments ordonnés d'autres non. set : conteneur qui n'accepte pas les doublons list: conteneur qui range les éléments en séquence (notion d'index) map: conteneur qui associe une clé à chaque élément sortedset: conteneur qui maintient un ordre croissant sur l'ensemble des éléments sortedmap: conteneur qui maintient un ordre croissant sur l'ensemble des clés Cours Java : les conteneurs 15 Cours Java : les conteneurs 16
3 L'interface de Collection L'interface de Set public interface Collection { boolean contains(object element); boolean add(object element); boolean remove(object element); Iterator iterator(); boolean containsall(collection c); boolean addall(collection c); boolean removeall(collection c); boolean retainall(collection c); // Array Operations Object[] toarray(); Object[] toarray(object a[]); public interface Set extends Collection{ boolean contains(object element); boolean add(object element); boolean remove(object element); Iterator iterator(); boolean containsall(collection c); boolean addall(collection c); boolean removeall(collection c); boolean retainall(collection c); // Array Operations Object[] toarray(); Object[] toarray(object a[]); Cours Java : les conteneurs 17 Cours Java : les conteneurs 18 L'interface de List public interface List extends Collection { // Positional Access Object get(int index); Object set(int index, Object element); void add(int index, Object element); Object remove(int index); abstract boolean addall(int index, Collection c); // Search int indexof(object o); int lastindexof(object o); // Iteration ListIterator listiterator(); ListIterator listiterator(int index); L'interface de ListIterator La classe ListIterator permet de se déplacer dans les deux sens d'un conteneur. Elle permet de modifier son contenu (set, add, en plus de remove) public interface ListIterator extends Iterator { boolean hasnext(); Object next(); boolean hasprevious(); Object previous(); // Range-view List sublist(int from, int to); La méthode sublist permet de travailler temporairement sur une sous liste. int nextindex(); int previousindex(); void remove(); void set(object o); void add(object o); Cours Java : les conteneurs 19 Cours Java : les conteneurs 20 index: 0 L'interface de ListIterator Element (0) Element (1) Element (2) Element (3) 1 Index correspond à l'index de l'élément qui sera renvoyé lors de l'appel à la méthode next() Sans précision, l'index de départ vaut zéro. Soit i la valeur de l'index, la méthode previous() renvoie l'élément à l'index i Cours Java : les conteneurs L'interface Map public interface Map { Object put(object key, Object value); Object get(object key); Object remove(object key); boolean containskey(object key); boolean containsvalue(object value); void putall(map t); // Collection Views public Set keyset(); public Collection values(); public Set entryset(); // Interface for entryset elements public interface Entry { Object getkey(); Object getvalue(); Object setvalue(object value); Cours Java : les conteneurs 22 L'interface SortedSet L'interface SortedMap public interface SortedSet extends Set { // Range-view SortedSet subset(object fromelement, Object toelement); SortedSet headset(object toelement); SortedSet tailset(object fromelement); // Endpoints Object first(); Object last(); // Comparator access Comparator comparator(); Range les éléments suivant l'ordre naturel ou à l'aide de la classe Comparator indiquée à la création Ajoute à l'interface Set un ensemble de méthodes «Range-view» (half-open) Cours Java : les conteneurs 23 public interface SortedMap extends Map { Comparator comparator(); SortedMap submap(object fromkey, Object tokey); SortedMap headmap(object tokey); SortedMap tailmap(object fromkey); Object firstkey(); Object lastkey(); Range les éléments suivant l'ordre naturel ou à l'aide de la classe Comparator indiquée à la création L'interface est comparable avec SortedSet à la différence que l'on utilise des clés à la place des éléments Cours Java : les conteneurs 24
4 Hash Table Implementations Resizable Array Balanced Tree Linked List Set HashSet TreeSet Interfaces List ArrayList LinkedList Map HashMap TreeMap Set HashSet (en temps constant) TreeSet (en O(logn)) L'implantation TreeSet permet de gérer un ordre dans les éléments de l'ensemble Le temps de parcours avec un itérateur est fonction de la taille de l'ensemble. Il est important de spécifier une taille initial en rapport avec la taille probable d'utilisation. Set set = new HashSet(17); Cours Java : les conteneurs 25 Cours Java : les conteneurs 26 List ArrayList LinkedList On utilise le plus souvent l'implantation ArrayList qui donne un accès en temps constant et qui est (en général) plus rapide que l'implantation LinkedList. Un constructeur permet de spécifier la taille initiale. Map HashMap TreeMap Les remarques sont les mêmes que pour l'implantation des Sets. Cours Java : les conteneurs 27 Cours Java : les conteneurs 28 Sort (Tri) Les algorithmes Shuffling (inverse du tri) Manipulation de données inverse (inverse l'ordre dans la liste) fill (initialise la liste) copy (copie une liste source dans une liste destination. Les deux listes doivent avoir la même taille. Recherche Recherche un élément dans un conteneur trié dans un ordre croissant Cours Java : les conteneurs 29 Les algorithmes Les algorithmes sont accessibles à partir de la classe statique Collections static Object binarysearch(list list, object key) Searches the specified list for the specified object using the binary search algorithm. static void copy(list dest, List src) Copies all of the elements from one list into another. static void fill(list list, Object obj) Replaces all of the elements of the specified list with the specified element. static Object max(collection coll) Returns the maximum element of the given collection, according to the natural ordering of its elements. static Object min(collection coll) Returns the minimum element of the given collection, according to the natural ordering of its elements. static void shuffle(list list) Randomly permutes the specified list using a default source of randomness. static void shuffle(list list, Random rnd) Randomly permute the specified list using the specified source of randomness. static void sort(list list) Sorts the specified list into ascending order, according to the natural ordering of its elements. static void sort(list list, Comparator c) Sorts the specified list according to the order induced by the specified comparator. Cours Java : les conteneurs 30 Illustration Set import java.util.*; public class FindDups { public static void main(string args[]) { Set s = new HashSet(); for (int i=0; i<args.length; i++) if (!s.add(args[i])) System.out.println("Duplicate detected: "+args[i]); Les éléments qui sont déjà dans l'ensemble ne sont pas ajoutés System.out.println(s.size()+" distinct words detected: "+s); Set union = new HashSet(s1); union.addall(s2); // elts de s1 et s2 sans doublons Set intersection = new HashSet(s1); intersection.retainall(s2);// elts commun à s1 et s2 Set difference = new HashSet(s1); difference.removeall(s2); // elts de S1 qui ne sont pas dans s2 Cours Java : les conteneurs 31 Illustration List public static void main(string[] args) { int nbjoueurs = Integer.parseInt(args[0]); int nbcartesparjoueurs = Integer.parseInt(args[1]); // Jeu de 52 cartes String[] couleurs = new String[] { "carreau", "treffle", "coeur", "pique" ; String[] carte = new String[] { "as", "2", "3", "4", "5", "6", "7", "8", "9", "10", "valet", "dame", "roi" ; List jeu = new ArrayList(); for (int i = 0; i < couleurs.length; i++) for (int j = 0; j < carte.length; j++) jeu.add(carte[j] + " de " + couleurs[i]); Collections.shuffle(jeu); for (int i = 0; i < nbjoueurs; i++) System.out.println(jeuJoueur(jeu, nbcartesparjoueurs)); Cours Java : les conteneurs 32
5 Illustration List Illustration Map public static List jeujoueur(list jeu, int n) { int taillejeu = jeu.size(); List vuejeu = jeu.sublist(taillejeu - n, taillejeu); List jeujoueur = new ArrayList(vueJeu); vuejeu.clear(); return jeujoueur; import java.util.*; public class Freq { private static final Integer ONE = new Integer(1); public static void main(string args[]) { Map m = new HashMap(); // Initialize frequency table from command line for (int i=0; i<args.length; i++) { Integer freq = (Integer) m.get(args[i]); m.put(args[i], (freq==null? ONE : new Integer(freq.intValue() + 1))); System.out.println(m.size()+" distinct words detected:"); System.out.println(m); Cours Java : les conteneurs 33 Cours Java : les conteneurs 34 Illustration SortedSet Illustration SortedMap Les éléments du conteneur entre les objets "doorbell" compris et "pickle" exclu int count = dictionary.subset("doorbell", "pickle").size(); for (char ch='a'; ch<='z'; ch++) { String from = new String(new char[] {ch); String to = new String(new char[] {(char)(ch+1)); System.out.println(from + ": " + dictionary.subset(from, to).size()); Les éléments du conteneur en début d'ensemble et en fin d'ensemble. Volume1 contient les éléments jusqu'à "n" exclu Volume2 contient les éléments à partir de "n" inclus jusqu'au dernier élément SortedSet volume1 = dictionary.headset("n"); SortedSet volume2 = dictionary.tailset("n"); Cours Java : les conteneurs 35 SortedMap m = new TreeMap(); m.put("sneezy", "common cold"); m.put("sleepy", "narcolepsy"); m.put("grumpy", "seasonal affective disorder"); System.out.println(m.keySet()); System.out.println(m.values()); System.out.println(m.entrySet()); [Grumpy, Sleepy, Sneezy] [seasonal affective disorder, narcolepsy, common cold] [Grumpy=seasonal affective disorder, Sleepy=narcolepsy, Sneezy=common cold] final Comparator FUNNY_COMPARATOR =... ; Map m = new TreeMap(FUNNY_COMPARATOR); //... code to populate m Map m2 = new TreeMap(m); // invokes TreeMap(Map) Map m3 = new TreeMap((SortedMap)m) // invokes TreeMap(SortedMap)] Cours Java : les conteneurs 36
Chapitre V. Les classes : Object, Vector, etc.
Chapitre V Les classes de base Les classes : Object, Vector, etc. Plan La classe Object Les collections La classe ArrayList La classe Vector Les classes Wrappers Les classes String et StringBuffer La classe
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],
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
LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. [email protected] www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour [email protected] www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
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
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
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
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)
Threads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Une introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
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
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
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....
Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object
Facultés Universitaires Notre-Dame de la Paix Conception et Programmation Orientées- Object 2008-2009 RÉSUMÉ PRATIQUE... 4 CLASSE OBJET... 4 NOTION D HÉRITAGE... 4 LE POLYMORPHISME... 5 LES CLASSES ABSTRAITES...
Programmation Objet I
2002-2003 UFR Mathématique de la Décision Deuxième Année de DEUG Science mention MASS Programmation Objet I Fabrice Rossi et Fabien Napolitano c Fabrice Rossi et Fabien Napolitano, 2002-2003 Le code de
Java 1.5 : principales nouveautés
Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) 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
Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions
Langage JAVA Bases du langage Opérations sur les fichiers Réseau Multi-tâche Logiciel: interfaces... Gestion des périphériques (méthodes natives) Accès aux bases de données Bases du langage Historique
Auto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Synchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
Introduction au langage de programmation Java
Introduction au langage de programmation Java Christian Bac, Denis Conan CSC 4002 Octobre 2014 Revision : 996 Introduction au langage de programmation Java Sommaire du cours 1 Introduction à Java.............................................................
Programmation Objet II
2002-2003 UFR Mathématique de la Décision Deuxième Année de DEUG Science mention MASS Programmation Objet II Fabrice Rossi et Fabien Napolitano c Fabrice Rossi et Fabien Napolitano, 2002-2003 Le code de
Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Utilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
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
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
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
4. Groupement d objets
Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux
P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )
P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes
Initiation à JAVA et à la programmation objet. [email protected]
Initiation à JAVA et à la programmation objet [email protected] 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
Exercices sur les interfaces
Exercices sur les interfaces Fabrice Rossi 18 octobre 1999 1 Le type Object 1.1 Manipulations élémentaires Exercice 1.1 : Indiquer l affichage produit par le programme suivant : public class UpCast1 {
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig [email protected]
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig [email protected] Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
OpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Programmation par les Objets en Java
Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée
PROGRAMMATION PAR OBJETS
PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 [email protected] B. Carré Polytech Lille 2 Java (Sun 1995)
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
Introduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Un ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA
JAVA Introduction à la programmation objet avec java 1/4 Nadir BOUSSOUKAIA v1.04 SOMMAIRE Caractéristiques de java (40mn) Eléments du langage (40mn) Les core API java (20mn) 2 Partie 1 Caractéristiques
Généralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Corrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture
API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant
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
Premiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
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
Programmation Réseau. Sécurité Java. [email protected]. UFR Informatique 2012-2013. jeudi 4 avril 13
Programmation Réseau Sécurité Java [email protected] UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 [email protected] 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 [email protected] 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Création d objet imbriqué sous PowerShell.
Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.
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
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
Héritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Langage Java. Classe de première SI
Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les
Classe Interne, Anonyme & Enumération
Java Avancé Classe Interne, Anonyme & Enumération Rémi Forax [email protected] 1 Rappel Nous nous intéressons aujourd'hui à deux formes de type abstrait en Java Les interfaces Les classes abstraites Les
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
Généricité. en Java. (polymorphisme paramétrique) Philippe GENOUD UJF Janvier 2015 1
(polymorphisme paramétrique) en Java Philippe GENOUD UJF Janvier 2015 1 Motivations Supposons que l'on développe du code pour gérer une file d'attente (FIFO First In First Out) et que l'on veuille utiliser
MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15
MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué
Tutoriel d installation de Hibernate avec Eclipse
Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création
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
RMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
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
Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Introduction : les processus. Introduction : les threads. Plan
IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres
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
Programmation Orientée Objet Java
Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre
Serveur d'application Client HTML/JS. Apache Thrift Bootcamp
Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/
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
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Programmation avec des objets : Cours 7. Menu du jour
1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes
Langage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne [email protected]
Applet pour visualiser les variables «automate» notifiées
Applet pour visualiser les variables «automate» notifiées Sommaire 1. Introduction...2 2. Lecture de variables «automate» notifiées...2 2.1. IHM servant au test :...2 2.2. Codage de l'applet :...2 3. Codage
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3
2 e édition JAVA 5 et 6 Jérôme Bougeault TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3 Classes et objets Les constructeurs Propriétés Les méthodes L héritage Les interfaces Les relations
Application web de gestion de comptes en banques
Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion
Arbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Dis papa, c est quoi un bus logiciel réparti?
Dis papa, c est quoi un bus logiciel réparti? [email protected] LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la
Introduction à JDBC. Accès aux bases de données en Java
Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique [email protected] 1 Introduction JDBC : Java Data Base Connectivity
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
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
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan
Certificat Big Data - Master MAthématiques
1 / 1 Certificat Big Data - Master MAthématiques Master 2 Auteur : Sylvain Lamprier UPMC Fouille de données et Medias Sociaux 2 / 1 Rich and big data: Millions d utilisateurs Millions de contenus Multimedia
Tp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Paginer les données côté serveur, mettre en cache côté client
Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule
Remote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Cours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Introduction à MapReduce/Hadoop et Spark
1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -
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
Programmation Orientée Objet
Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 21 octobre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet 21 octobre 2014
Projet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont [email protected] 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Java Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
TD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet [email protected].
Programmation Orientée Objet - Licence TIS CM8/9 Lancelot Pecquet [email protected] Poitiers, le 13/03/2006 Rappel sur la séance précédente La fois précédente, nous avons vu : 1 UML
SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...
Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo
4 Exemples de problèmes MapReduce incrémentaux
4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank
