Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Génie Logiciel 2- Programmation orientée objet avec Java Idir AIT SADOUNE [email protected] Plateau du Moulon - Gif sur Yvette - France 1e année CentraleSupelec - Séquence 4 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Objectifs du cours Apprendre à faire de la programmation orientée objet en utilisant le langage Java Programmation objet avec Java Introduction Problème Soit un ensemble de nombres complexes Donner un nombre dont la norme est minimale Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Introduction Problème Soit un ensemble de nombres complexes Donner un nombre dont la norme est minimale Solution L’ensemble des nombres complexes sera représenté par un tableau de complexes Comment représenter un tableau de complexes ? Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Idée : deux tableaux public class ExempleIntroduction { s t a t i c d o u b l e [ ] minimum ( d o u b l e [ ] r e e l l e s , d o u b l e [ ] double reMin = 0 ; d o u b l e imMin = 0 ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i < r e e l l e s . l e n g t h ; i ++){ double r e = r e e l l e s [ i ] ; d o u b l e im = i m a g i n a i r e s [ i ] ; d o u b l e norme = Math . s q r t ( r e ∗ r e + im ∗ im ) ; i f ( norme < normeMin ) { reMin = r e ; imMin = im ; normeMin = norme ; } } r e t u r n new d o u b l e [ ] { reMin , imMin } ; } } i m a g i n a i r e s ){ Programmation objet avec Java Inconvénients de la solution proposée Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Inconvénients de la solution proposée Multiplication des arguments Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Inconvénients de la solution proposée Multiplication des arguments Rien ne garantit que les deux tableaux auront la même taille Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Inconvénients de la solution proposée Multiplication des arguments Rien ne garantit que les deux tableaux auront la même taille Pour la valeur résultat, on doit utiliser un tableau Programmation objet avec Java Solution : Un type nombre complexe Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Solution : Un type nombre complexe s t a t i c Complexe minimum ( Complexe [ ] nombres ) { ... } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Solution : Un type nombre complexe s t a t i c Complexe minimum ( Complexe [ ] nombres ) { ... } Un objet Complexe ? Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Solution : Un type nombre complexe s t a t i c Complexe minimum ( Complexe [ ] nombres ) { ... } Un objet Complexe ? Une variable de type Complexe doit contenir : Une partie réelle de type double Une partie imaginaire de type double Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Solution : Un type nombre complexe s t a t i c Complexe minimum ( Complexe [ ] nombres ) { ... } Un objet Complexe ? Une variable de type Complexe doit contenir : Une partie réelle de type double Une partie imaginaire de type double Un Complexe sera un objet avec deux attributs Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Java est un langage orienté objet Un programme en POO (programmation orienté objet) est un ensemble d’objets en interaction (échanges de données ou de messages) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Java est un langage orienté objet Un programme en POO (programmation orienté objet) est un ensemble d’objets en interaction (échanges de données ou de messages) Un objet (une entité, un concept ou une idée) est une structure de données possédant un état et un comportement Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Java est un langage orienté objet Un programme en POO (programmation orienté objet) est un ensemble d’objets en interaction (échanges de données ou de messages) Un objet (une entité, un concept ou une idée) est une structure de données possédant un état et un comportement l’état est défini par la structure interne de l’objet (ensemble d’attributs) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Java est un langage orienté objet Un programme en POO (programmation orienté objet) est un ensemble d’objets en interaction (échanges de données ou de messages) Un objet (une entité, un concept ou une idée) est une structure de données possédant un état et un comportement l’état est défini par la structure interne de l’objet (ensemble d’attributs) le comportement est défini par l’interface de l’objet (ensembles de méthodes) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Java est un langage orienté objet Un programme en POO (programmation orienté objet) est un ensemble d’objets en interaction (échanges de données ou de messages) Un objet (une entité, un concept ou une idée) est une structure de données possédant un état et un comportement l’état est défini par la structure interne de l’objet (ensemble d’attributs) le comportement est défini par l’interface de l’objet (ensembles de méthodes) Exemple d’un programme orienté objet Type Telephone(numero, disponible, appeler, decrocher, envoyerSMS, recevoirSMS) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Java est un langage orienté objet Un programme en POO (programmation orienté objet) est un ensemble d’objets en interaction (échanges de données ou de messages) Un objet (une entité, un concept ou une idée) est une structure de données possédant un état et un comportement l’état est défini par la structure interne de l’objet (ensemble d’attributs) le comportement est défini par l’interface de l’objet (ensembles de méthodes) Exemple d’un programme orienté objet Type Telephone(numero, disponible, appeler, decrocher, envoyerSMS, recevoirSMS) creer x objet Telephone(06_14_14_14_14, true) creer y objet Telephone(06_24_24_24_24, true) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Java est un langage orienté objet Un programme en POO (programmation orienté objet) est un ensemble d’objets en interaction (échanges de données ou de messages) Un objet (une entité, un concept ou une idée) est une structure de données possédant un état et un comportement l’état est défini par la structure interne de l’objet (ensemble d’attributs) le comportement est défini par l’interface de l’objet (ensembles de méthodes) Exemple d’un programme orienté objet Type Telephone(numero, disponible, appeler, decrocher, envoyerSMS, recevoirSMS) creer x objet Telephone(06_14_14_14_14, true) creer y objet Telephone(06_24_24_24_24, true) x.envoyerSMS(y,"coucou") Programmation objet avec Java Plan 1 Classes et Objets 2 Constructeur 3 Les méthodes 4 Visibilité 5 Classes Prédéfinies Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets 1 - Classes et Objets Définition d’une classe Définition d’un Objet Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’une classe 1 - Classes et Objets Définition d’une classe Définition d’un Objet Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’une classe Définition d’une classe Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’une classe Définition d’une classe Objectif Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’une classe Définition d’une classe Objectif Décrire une donnée, un concept, une idée, ... Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’une classe Définition d’une classe Objectif Décrire une donnée, un concept, une idée, ... Définir un nouveau type de données Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’une classe Définition d’une classe Objectif Décrire une donnée, un concept, une idée, ... Définir un nouveau type de données Une classe est un moule servant à définir des objets avec une forme particulière Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’une classe Définition d’une classe Objectif Décrire une donnée, un concept, une idée, ... Définir un nouveau type de données Une classe est un moule servant à définir des objets avec une forme particulière La classe définit : Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’une classe Définition d’une classe Objectif Décrire une donnée, un concept, une idée, ... Définir un nouveau type de données Une classe est un moule servant à définir des objets avec une forme particulière La classe définit : l’état (les attributs) de l’objet Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’une classe Définition d’une classe Objectif Décrire une donnée, un concept, une idée, ... Définir un nouveau type de données Une classe est un moule servant à définir des objets avec une forme particulière La classe définit : l’état (les attributs) de l’objet le comportement (les fonctions/méthodes) de l’objet Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’une classe Définition d’une classe en Java La classe (mot clé class) est créée dans un fichier séparé portant le nom de la classe (NomClasse.java) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’une classe Définition d’une classe en Java La classe (mot clé class) est créée dans un fichier séparé portant le nom de la classe (NomClasse.java) La syntaxe Java d’une classe class NomDeLaClasse { Liste_des_attributs Liste_des_methodes } Programmation objet avec Java Classes et Objets Définition d’une classe Définition des attributs : La syntaxe Java Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’une classe Définition des attributs : La syntaxe Java class NomDeLaClasse { TypeDeLAttribut1 Attribut1 TypeDeLAttribut2 Attribut2 ... } La classe Complexe c l a s s Complexe { double r e e l ; d o u b l e imag ; } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’un Objet 1 - Classes et Objets Définition d’une classe Définition d’un Objet Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes et Objets Définition d’un Objet Définition d’un objet en Java Un objet est une instance d’une classe Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’un Objet Définition d’un objet en Java Un objet est une instance d’une classe Construire un objet revient à créer une instance d’une classe (mot clé new) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’un Objet Définition d’un objet en Java Un objet est une instance d’une classe Construire un objet revient à créer une instance d’une classe (mot clé new) La syntaxe Java NomDeLaClasse nomDeLObjet = new NomDeLaClasse() ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’un Objet Définition d’un objet en Java Un objet est une instance d’une classe Construire un objet revient à créer une instance d’une classe (mot clé new) La syntaxe Java NomDeLaClasse nomDeLObjet = new NomDeLaClasse() ; Utiliser un objet revient à manipuler ses attributs Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’un Objet Définition d’un objet en Java Un objet est une instance d’une classe Construire un objet revient à créer une instance d’une classe (mot clé new) La syntaxe Java NomDeLaClasse nomDeLObjet = new NomDeLaClasse() ; Utiliser un objet revient à manipuler ses attributs La syntaxe Java nomDeLObjet.nomAttribut_1 = Expression ; Programmation objet avec Java Classes et Objets Définition d’un Objet La classe Complexe c l a s s Complexe { double r e e l ; d o u b l e imag ; } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’un Objet La classe Complexe c l a s s Complexe { double r e e l ; d o u b l e imag ; } c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( ) ; c . reel = 2.3; c . imag = 5 . 2 ; System . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’un Objet La classe Complexe c l a s s Complexe { double r e e l ; d o u b l e imag ; } c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( ) ; c . reel = 2.3; c . imag = 5 . 2 ; System . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } 2.3 + i ∗5.2 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes et Objets Définition d’un Objet Exemple d’introduction public class ExempleIntroduction { s t a t i c Complexe minimum ( Complexe [ ] nombres ) { Complexe min = n u l l ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i <nombres . l e n g t h ; i ++) { Complexe z = nombres [ i ] ; d o u b l e norme = Math . s q r t ( z . r e e l ∗ z . r e e l + z . imag ∗ z . imag ) ; i f ( norme<normeMin ) { min = z ; normeMin = norme ; } } r e t u r n min ; } } Programmation objet avec Java Constructeur 2 - Constructeur Création des objets L’objet this Les références sur les objets Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Constructeur Création des objets 2 - Constructeur Création des objets L’objet this Les références sur les objets Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur Création d’un objet Complexe Complexe a = new Complexe ( ) ; Le constructeur est une fonction particulière associée à la classe et appelée lors de la création d’un nouvel objet Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur Création d’un objet Complexe Complexe a = new Complexe ( ) ; Le constructeur est une fonction particulière associée à la classe et appelée lors de la création d’un nouvel objet Il sert à allouer un emplacement en mémoire pour le nouvel objet Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur Création d’un objet Complexe Complexe a = new Complexe ( ) ; Le constructeur est une fonction particulière associée à la classe et appelée lors de la création d’un nouvel objet Il sert à allouer un emplacement en mémoire pour le nouvel objet Il sert à initialiser les attributs du nouvel objet Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur par défaut A la définition d’une nouvelle classe, Java crée un constructeur par défaut c l a s s Complexe { double r e e l ; d o u b l e imag ; } Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur par défaut A la définition d’une nouvelle classe, Java crée un constructeur par défaut c l a s s Complexe { double r e e l ; d o u b l e imag ; } Le constructeur par défaut alloue l’emplacement mémoire de l’objet et initialise ses attributs avec des valeurs par défaut Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur par défaut A la définition d’une nouvelle classe, Java crée un constructeur par défaut c l a s s Complexe { double r e e l ; d o u b l e imag ; } Le constructeur par défaut alloue l’emplacement mémoire de l’objet et initialise ses attributs avec des valeurs par défaut c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( ) ; System . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } 0.0 + i ∗0.0 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Complexe a ; .. 0A 09 08 07 06 05 04 03 02 01 00 null Création des objets a Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets .. Complexe a = new Complexe() ; 0A 09 08 07 06 05 04 03 02 01 00 0.0 0.0 a.imag a.reel 04 a Création des objets Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur personnalisé Souvent, on souhaite initialiser les objets créés avec des valeurs particulière Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur personnalisé Souvent, on souhaite initialiser les objets créés avec des valeurs particulière On doit définir un constructeur personnalisé Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur personnalisé Souvent, on souhaite initialiser les objets créés avec des valeurs particulière On doit définir un constructeur personnalisé Le constructeur est une fonction/méthode particulière associée à la classe Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Le constructeur personnalisé Souvent, on souhaite initialiser les objets créés avec des valeurs particulière On doit définir un constructeur personnalisé Le constructeur est une fonction/méthode particulière associée à la classe Même nom que la classe Pas de mot clé static et pas de type de résultat Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets La syntaxe Java du constructeur personnalisé class NomDeLaClasse { TypeAttribut1 nomAttribut1 TypeAttribut2 numAttribut2 ... NomDeLaClasse(TypeArg1 arg1, TypeArg2 arg2, ...) { Comportement } ... Liste_des_methodes } Programmation objet avec Java Constructeur Création des objets Exemple d’un constructeur personnalisé c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( d o u b l e r , d o u b l e i ) { reel = r ; imag = i ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Exemple d’un constructeur personnalisé c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( d o u b l e r , d o u b l e i ) { reel = r ; imag = i ; } } c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( 1 . 0 , 1 . 0 ) ; System . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Exemple d’un constructeur personnalisé c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( d o u b l e r , d o u b l e i ) { reel = r ; imag = i ; } } c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( 1 . 0 , 1 . 0 ) ; System . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } 1.0 + i ∗1.0 Programmation objet avec Java Constructeur Création des objets Remarques Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Remarques Une classe peut avoir plusieurs constructeurs (constructeurs homonymes) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Remarques Une classe peut avoir plusieurs constructeurs (constructeurs homonymes) Si on définit dans une classe un constructeur personnalisé, on a plus accès au constructeur par défaut (ce dernier n’existe plus) Programmation objet avec Java Constructeur Création des objets Erreur : constructeur par défaut n’existe plus c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( d o u b l e r , d o u b l e i ) { reel = r ; imag = i ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Erreur : constructeur par défaut n’existe plus c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( d o u b l e r , d o u b l e i ) { reel = r ; imag = i ; } } c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( ) ; System . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Redéfinir le constructeur par défaut c l a s s Co mplexe { double r e e l ; d o u b l e imag ; Co mplexe ( ) { reel = 0.0; imag = 0 . 0 ; } Co mplexe ( d o u b l e r , reel = r ; imag = i ; } } double i ){ Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Redéfinir le constructeur par défaut c l a s s Co mplexe { double r e e l ; d o u b l e imag ; Co mplexe ( ) { reel = 0.0; imag = 0 . 0 ; } Co mplexe ( d o u b l e r , reel = r ; imag = i ; } double i ){ } c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( ) ; S ys t em . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Création des objets Redéfinir le constructeur par défaut c l a s s Co mplexe { double r e e l ; d o u b l e imag ; Co mplexe ( ) { reel = 0.0; imag = 0 . 0 ; } Co mplexe ( d o u b l e r , reel = r ; imag = i ; } double i ){ } c l a s s TestComplexe { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( ) ; S ys t em . o u t . p r i n t ( c . r e e l + " + i ∗" + c . imag ) ; } } 0.0 + i ∗0.0 Programmation objet avec Java Constructeur L’objet this 2 - Constructeur Création des objets L’objet this Les références sur les objets Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Constructeur L’objet this Manipuler l’objet "courant" Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Constructeur L’objet this Manipuler l’objet "courant" Mot-clé this Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur L’objet this Manipuler l’objet "courant" Mot-clé this C’est un objet qui représente une instance de la classe en cours de définition Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur L’objet this Manipuler l’objet "courant" Mot-clé this C’est un objet qui représente une instance de la classe en cours de définition Permet de manipuler l’objet en cours de création Programmation objet avec Java Constructeur L’objet this Exemple d’utilisation de l’objet this c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( ) { this . reel = 0.0; t h i s . imag = 0 . 0 ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Constructeur L’objet this Exemple d’utilisation de l’objet this c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( ) { this . reel = 0.0; t h i s . imag = 0 . 0 ; } Complexe ( d o u b l e r e e l , d o u b l e imag ) { this . reel = reel ; t h i s . imag = imag ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Constructeur Les références sur les objets 2 - Constructeur Création des objets L’objet this Les références sur les objets Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Constructeur Les références sur les objets Les références sur les objets Un objet est créé par l’opérateur new Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Constructeur Les références sur les objets Les références sur les objets Un objet est créé par l’opérateur new Un objet dispose de sa propre zone mémoire Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets Les références sur les objets Un objet est créé par l’opérateur new Un objet dispose de sa propre zone mémoire Un objet contient une référence vers ses éléments, mais ne contient pas les éléments de l’objet lui même. Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets Les références sur les objets Un objet est créé par l’opérateur new Un objet dispose de sa propre zone mémoire Un objet contient une référence vers ses éléments, mais ne contient pas les éléments de l’objet lui même. Un objet peut valoir la valeur null (valeur par défaut) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets Les références sur les objets Un objet est créé par l’opérateur new Un objet dispose de sa propre zone mémoire Un objet contient une référence vers ses éléments, mais ne contient pas les éléments de l’objet lui même. Un objet peut valoir la valeur null (valeur par défaut) Elle désigne l’objet vide (équivalent au zéro des entiers) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets Les références sur les objets Un objet est créé par l’opérateur new Un objet dispose de sa propre zone mémoire Un objet contient une référence vers ses éléments, mais ne contient pas les éléments de l’objet lui même. Un objet peut valoir la valeur null (valeur par défaut) Elle désigne l’objet vide (équivalent au zéro des entiers) Toute tentative d’accès au contenu de l’objet null génère une erreur (NullPointerException) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets .. Complexe a = new Complexe() ; 0A 09 08 07 06 05 04 03 02 01 00 0.0 0.0 a.imag a.reel 04 a Manipulation des objets Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets .. Complexe a = new Complexe() ; 0A Complexe b = new Complexe() ; 09 08 07 06 05 04 03 02 01 00 0.0 0.0 b.imag b.reel 0.0 0.0 a.imag a.reel 08 b 04 a Manipulation des objets Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets .. Complexe a = new Complexe() ; 0A Complexe b = new Complexe() ; 09 08 a.reel = 2.0 ; 07 a.imag = 5.0 ; 06 05 04 03 02 01 00 0.0 0.0 b.imag b.reel 5.0 2.0 a.imag a.reel 08 b 04 a Manipulation des objets Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets .. Complexe a = new Complexe() ; 0A Complexe b = new Complexe() ; 09 08 a.reel = 2.0 ; 07 a.imag = 5.0 ; 06 b = a; 05 04 03 02 01 00 5.0 2.0 a.imag a.reel 04 b 04 a Manipulation des objets b.imag b.reel Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets .. Complexe a = new Complexe() ; 0A Complexe b = new Complexe() ; 09 08 a.reel = 2.0 ; 07 a.imag = 5.0 ; 06 b = a; 05 b.imag = 7.0 ; 04 03 02 01 00 7.0 2.0 a.imag a.reel 04 b 04 a Manipulation des objets b.imag b.reel Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Constructeur Les références sur les objets .. Complexe a = new Complexe() ; 0A Complexe b = new Complexe() ; 09 08 a.reel = 2.0 ; 07 a.imag = 5.0 ; 06 b = a; 05 b.imag = 7.0 ; 04 b = null ; 03 02 01 00 7.0 2.0 a.imag a.reel null b 04 a Manipulation des objets Programmation objet avec Java Les méthodes 3 - Les méthodes Définition des méthodes Les méthodes ’static’ Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Introduction Exemple d’introduction s t a t i c Complexe minimum ( Complexe [ ] nombres ) { Complexe min = n u l l ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i <nombres . l e n g t h ; i ++) { Complexe z = nombres [ i ] ; d o u b l e norme = Math . s q r t ( z . r e e l ∗ z . r e e l + z . imag ∗ z . imag ) ; i f ( norme<normeMin ) { min = z ; normeMin = norme ; } } r e t u r n min ; } Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Introduction Exemple d’introduction s t a t i c Complexe minimum ( Complexe [ ] nombres ) { Complexe min = n u l l ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i <nombres . l e n g t h ; i ++) { Complexe z = nombres [ i ] ; d o u b l e norme = Math . s q r t ( z . r e e l ∗ z . r e e l + z . imag ∗ z . imag ) ; i f ( norme<normeMin ) { min = z ; normeMin = norme ; } } r e t u r n min ; } Pourquoi ne pas créer une fonction norme ? Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Solution : utiliser une fonction c l a s s TestComplexe { s t a t i c d o u b l e norme ( Complexe c ) { r e t u r n Math . s q r t ( c . r e e l ∗ c . r e e l + c . imag ∗ c . imag ) ; } s t a t i c Complexe minimum ( Complexe [ ] nombres ) { Complexe min = n u l l ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i <nombres . l e n g t h ; i ++) { Complexe z = nombres [ i ] ; d o u b l e norme = norme ( z ) ; i f ( norme<normeMin ) { min = z ; normeMin = norme ; } } r e t u r n min ; } } Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Remarque Pourquoi ne pas définir la norme d’un complexe comme un service calculé par un objet de type Complexe ? Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Remarque Pourquoi ne pas définir la norme d’un complexe comme un service calculé par un objet de type Complexe ? s t a t i c Complexe minimum ( Complexe [ ] nombres ) { Complexe min = n u l l ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i <nombres . l e n g t h ; i ++) { Complexe z = nombres [ i ] ; d o u b l e norme = z . norme ( ) ; i f ( norme<normeMin ) { min = z ; normeMin = norme ; } } r e t u r n min ; } Programmation objet avec Java Les méthodes Définition des méthodes 3 - Les méthodes Définition des méthodes Les méthodes ’static’ Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Les méthodes Définition des méthodes Programmation orientée objet Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Définition des méthodes Programmation orientée objet Définir l’état d’un objet (attributs) et son comportement (fonctions/méthodes) au sein d’une classe Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Définition des méthodes Programmation orientée objet Définir l’état d’un objet (attributs) et son comportement (fonctions/méthodes) au sein d’une classe Les fonctions/méthodes deviennent des services proposées par un objet Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Définition des méthodes Programmation orientée objet Définir l’état d’un objet (attributs) et son comportement (fonctions/méthodes) au sein d’une classe Les fonctions/méthodes deviennent des services proposées par un objet Définition des méthodes en Java Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Définition des méthodes Programmation orientée objet Définir l’état d’un objet (attributs) et son comportement (fonctions/méthodes) au sein d’une classe Les fonctions/méthodes deviennent des services proposées par un objet Définition des méthodes en Java Identiques aux fonctions, mais sans le mot clef static Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Définition des méthodes Programmation orientée objet Définir l’état d’un objet (attributs) et son comportement (fonctions/méthodes) au sein d’une classe Les fonctions/méthodes deviennent des services proposées par un objet Définition des méthodes en Java Identiques aux fonctions, mais sans le mot clef static Sont appelées par des objets d’une classe (une instance de la classe) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Définition des méthodes Exemple c l a s s Complexe { double r e e l ; d o u b l e imag ; Complexe ( ) { t h i s . r e e l =0.0; t h i s . imag = 0 . 0 ; } Complexe ( d o u b l e r e e l , d o u b l e image ) { this . reel = reel ; t h i s . imag = image ; } d o u b l e norme ( ) { r e t u r n Math . s q r t ( t h i s . r e e l ∗ t h i s . r e e l + t h i s . imag ∗ t h i s . imag ) ; } } Programmation objet avec Java Les méthodes Définition des méthodes Utilisation de la méthode norme c l a s s ExempleTest { s t a t i c Complexe minimum ( Complexe [ ] n o m b r e s ) { Complexe min = n u l l ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i <n o m b r e s . l e n g t h ; i ++) { Complexe z = n o m b r e s [ i ] ; d o u b l e norme = z . norme ( ) ; i f ( norme<normeMin ) { min = z ; normeMin = norme ; } } r e t u r n min ; } p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c1 = new Complexe ( 1 0 . 2 , 0 . 2 ) ; Complexe c2 = new Complexe ( 5 . 3 , 5 . 7 ) ; Complexe c3 = new Complexe ( 4 . 0 , 8 . 2 ) ; Complexe [ ] m = { c1 , c2 , c3 } ; Complexe min_2 = minimum (m) ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Les méthodes Les méthodes ’static’ 3 - Les méthodes Définition des méthodes Les méthodes ’static’ Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Les méthodes Les méthodes ’static’ Que signifie le mot clef static ? Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Les méthodes ’static’ Que signifie le mot clef static ? Une méthode/un attribut static n’est pas lié à une instance d’une classe. Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Les méthodes ’static’ Que signifie le mot clef static ? Une méthode/un attribut static n’est pas lié à une instance d’une classe. Un attribut static est partagé par tous les objets (instances des classes créées). C’est une variable globale. Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Les méthodes ’static’ Que signifie le mot clef static ? Une méthode/un attribut static n’est pas lié à une instance d’une classe. Un attribut static est partagé par tous les objets (instances des classes créées). C’est une variable globale. Une méthode static peut être utilisée sans créer des objets de la classe qui la déclare (définition d’une fonction). Elle est indépendante d’une instance particulière (objet) d’une classe. Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Les méthodes ’static’ Que signifie le mot clef static ? Une méthode/un attribut static n’est pas lié à une instance d’une classe. Un attribut static est partagé par tous les objets (instances des classes créées). C’est une variable globale. Une méthode static peut être utilisée sans créer des objets de la classe qui la déclare (définition d’une fonction). Elle est indépendante d’une instance particulière (objet) d’une classe. Remarque Pour accéder à une méthode ou un attribut static depuis une autre classe, il faut utiliser le nom de la classe suivi d’un point et du nom de la méthode ou de l’attribut Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Les méthodes Les méthodes ’static’ Exemples de méthodes/attributs static c l a s s Co mplexe { double r e e l ; d o u b l e imag ; s t a t i c int nbInstances = 0; Co mplexe ( d o u b l e r e e l , d o u b l e i m a g e ) { this . reel = reel ; t h i s . imag = i m a g e ; Complexe . n b I n s t a n c e s ++; } d o u b l e norme ( ) { r e t u r n Math . s q r t ( t h i s . r e e l ∗ t h i s . r e e l + t h i s . imag ∗ t h i s . imag ) ; } s t a t i c Complexe minimum ( Complexe [ ] n o m b r e s ) { Complexe min = n u l l ; d o u b l e normeMin = D o u b l e . POSITIVE_INFINITY ; f o r ( i n t i =0; i <Complexe . n b I n s t a n c e s ; i ++) { i f ( n o m b r e s [ i ] . norme () < normeMin ) { min = n o m b r e s [ i ] ; normeMin = n o m b r e s [ i ] . norme ( ) ; } } r e t u r n min ; } } Programmation objet avec Java Les méthodes Les méthodes ’static’ Exemples de méthodes/attributs static class ExempleIntroduction { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c1 = new Complexe ( 1 0 . 2 , 0 . 2 ) ; Complexe c2 = new Complexe ( 5 . 3 , 5 . 7 ) ; Complexe c3 = new Complexe ( 4 . 0 , 8 . 2 ) ; Complexe [ ] m = { c1 , c2 , c3 } ; Complexe min_2 = Complexe . minimum (m) ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité 4 - Visibilité Packages Accessibilité Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité Packages 4 - Visibilité Packages Accessibilité Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité Packages Organisation des classes en pakcages Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité Packages Organisation des classes en pakcages Regrouper les classes par ensembles cohérent Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Organisation des classes en pakcages Regrouper les classes par ensembles cohérent Chaque groupe sera stocké dans un dossier (package) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Organisation des classes en pakcages Regrouper les classes par ensembles cohérent Chaque groupe sera stocké dans un dossier (package) Les différents dossiers peuvent avoir une structure arborescente Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Organisation des classes en pakcages Regrouper les classes par ensembles cohérent Chaque groupe sera stocké dans un dossier (package) Les différents dossiers peuvent avoir une structure arborescente Intérêt Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Organisation des classes en pakcages Regrouper les classes par ensembles cohérent Chaque groupe sera stocké dans un dossier (package) Les différents dossiers peuvent avoir une structure arborescente Intérêt Organisation des classes Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Organisation des classes en pakcages Regrouper les classes par ensembles cohérent Chaque groupe sera stocké dans un dossier (package) Les différents dossiers peuvent avoir une structure arborescente Intérêt Organisation des classes Pas de conflit entre noms Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Organisation des classes en pakcages Regrouper les classes par ensembles cohérent Chaque groupe sera stocké dans un dossier (package) Les différents dossiers peuvent avoir une structure arborescente Intérêt Organisation des classes Pas de conflit entre noms Permet de nuancer le niveau de visibilité Programmation objet avec Java Visibilité Packages Déclaration et utilisation des packages Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Déclaration et utilisation des packages Les fichiers "xxx.java" correspondant aux classes du même package doivent être placés dans le même dossier (qui porte le nom du package). Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Déclaration et utilisation des packages Les fichiers "xxx.java" correspondant aux classes du même package doivent être placés dans le même dossier (qui porte le nom du package). Le nom du package doit être indiqué au début de la classe. Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Déclaration et utilisation des packages Les fichiers "xxx.java" correspondant aux classes du même package doivent être placés dans le même dossier (qui porte le nom du package). Le nom du package doit être indiqué au début de la classe. Pour utiliser une classe d’un autre package, il faut l’importer en utilisant le chemin complet de son package Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Packages Exemple package c o u r s . g e n i e l o g i c i e l ; // l e nom du p a c k a g e import c o u r s . r e s e a u x . ∗ ; // i m p o r t e r t o u t e s l e s c l a s s e s d ’ un p a c k a g e i m p o r t c o u r s . bdd . r e s s o u r c e s ; // i m p o r t e r une c l a s s e d ’ un p a c k a g e c l a s s Complexe { double r e e l ; d o u b l e imag ; ... } Programmation objet avec Java Visibilité Accessibilité 4 - Visibilité Packages Accessibilité Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Accessibilité Il est possible de restreindre les accès aux attributs et aux méthodes d’une classe. Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Accessibilité Il est possible de restreindre les accès aux attributs et aux méthodes d’une classe. L’accessibilité est définie par un mot clé qui précède la déclaration de l’attribut ou de la méthode Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Accessibilité Il est possible de restreindre les accès aux attributs et aux méthodes d’une classe. L’accessibilité est définie par un mot clé qui précède la déclaration de l’attribut ou de la méthode public : l’élément est accessible depuis toutes les classes du projet (on doit importer la classe avec le mot clé import) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Accessibilité Il est possible de restreindre les accès aux attributs et aux méthodes d’une classe. L’accessibilité est définie par un mot clé qui précède la déclaration de l’attribut ou de la méthode public : l’élément est accessible depuis toutes les classes du projet (on doit importer la classe avec le mot clé import) private : l’élément n’est accessible qu’au sein de la classe elle même Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Accessibilité Il est possible de restreindre les accès aux attributs et aux méthodes d’une classe. L’accessibilité est définie par un mot clé qui précède la déclaration de l’attribut ou de la méthode public : l’élément est accessible depuis toutes les classes du projet (on doit importer la classe avec le mot clé import) private : l’élément n’est accessible qu’au sein de la classe elle même rien : l’élément est accessible depuis toutes les classes du même package Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Accessibilité Il est possible de restreindre les accès aux attributs et aux méthodes d’une classe. L’accessibilité est définie par un mot clé qui précède la déclaration de l’attribut ou de la méthode public : l’élément est accessible depuis toutes les classes du projet (on doit importer la classe avec le mot clé import) private : l’élément n’est accessible qu’au sein de la classe elle même rien : l’élément est accessible depuis toutes les classes du même package Mot clé public rien private La classe X X X Le package X X Les autres packages X Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Exemples package c o u r s . g e n i e l o g i c i e l ; p u b l i c c l a s s Complexe { p r i v a t e double r e e l ; p r i v a t e d o u b l e imag ; p u b l i c Complexe ( d o u b l e r e e l , d o u b l e image ) { this . reel = reel ; t h i s . imag = image ; } p u b l i c d o u b l e norme ( ) { r e t u r n Math . s q r t ( t h i s . r e e l ∗ t h i s . r e e l + t h i s . imag ∗ t h i s . imag ) ; } } Programmation objet avec Java Visibilité Accessibilité Bonne utilisation package c o u r s . g e n i e l o g i c i e l . t e s t s ; public class Tests { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( 1 . 2 , 5 . 3 ) ; d o u b l e n = c . norme ( ) ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité Accessibilité Erreur : fausse utilisation package c o u r s . g e n i e l o g i c i e l . t e s t s ; public class Tests { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Complexe c = new Complexe ( 1 . 2 , 5 . 3 ) ; double r = c . r e e l ; } } Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité Accessibilité Bonnes pratiques Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité Accessibilité Bonnes pratiques Attributs Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Visibilité Accessibilité Bonnes pratiques Attributs Contiennent l’état interne de l’objet ⇒ private Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Bonnes pratiques Attributs Contiennent l’état interne de l’objet ⇒ private Pour accéder ou modifier les attributs d’une classe, on peut définir des méthodes dédiées appelées getters et setters. Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Bonnes pratiques Attributs Contiennent l’état interne de l’objet ⇒ private Pour accéder ou modifier les attributs d’une classe, on peut définir des méthodes dédiées appelées getters et setters. Méthodes Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Bonnes pratiques Attributs Contiennent l’état interne de l’objet ⇒ private Pour accéder ou modifier les attributs d’une classe, on peut définir des méthodes dédiées appelées getters et setters. Méthodes C’est l’interface d’accès aux fonctionnalités de la classe ⇒ public Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Visibilité Accessibilité Exemples p u b l i c c l a s s Complexe { p r i v a t e double r e e l ; p r i v a t e d o u b l e imag ; p u b l i c double getReel (){ return this . reel ; } p u b l i c double getImag (){ r e t u r n t h i s . imag ; } pu bl ic void setReel ( double this . reel = r ; r ){ } p u b l i c void setImag ( double t h i s . imag = i ; } } i ){ Programmation objet avec Java Visibilité Accessibilité Les commandes d’Eclipse Générer les getters et les setters Source > Generate Getters and Setters ... Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies 5 - Classes Prédéfinies String ArrayList HashMap Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies API Java Java dispose d’une bibliothèque très fournie de classes préexistantes (API : Application Programming Interface) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies API Java Java dispose d’une bibliothèque très fournie de classes préexistantes (API : Application Programming Interface) Exemples de classes : Math, System, File, ... Documentation : http://docs.oracle.com/javase/7/docs/api/ Programmation objet avec Java Classes Prédéfinies String 5 - Classes Prédéfinies String ArrayList HashMap Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String Chaine de Caractères : String Utilisé pour l’écriture des littéraux : texte entre " " Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String Chaine de Caractères : String Utilisé pour l’écriture des littéraux : texte entre " " Exemples S t r i n g p o s t e = " E n s e i g n a n t −Chercheur " ; System . o u t . p r i n t l n ( " Bonjour a t o u s " ) ; Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies String Quelques méthodes utiles length : longueur d’une chaine equals : comparaison de deux chaines charAt : extraction d’un caractère d’une position de la chaine split : découper une chaine substring : extraire une sous-chaine indexOf : rechercher une sous-chaine Programmation objet avec Java Classes Prédéfinies String length() S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . l e n g t h ( ) ) ; Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String length() S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . l e n g t h ( ) ) ; 18 Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String length() S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . l e n g t h ( ) ) ; 18 equals() S t r i n g maChaine = "Exemple de p h r a s e s " ; i f ( maChaine . e q u a l s ( "Une a u t r e p h r a s e " ) ) maChaine = maChaine + " . " ; else maChaine = maChaine . c o n c a t ( " , " ) ; System . o u t . p r i n t l n ( maChaine ) ; Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String length() S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . l e n g t h ( ) ) ; 18 equals() S t r i n g maChaine = "Exemple de p h r a s e s " ; i f ( maChaine . e q u a l s ( "Une a u t r e p h r a s e " ) ) maChaine = maChaine + " . " ; else maChaine = maChaine . c o n c a t ( " , " ) ; System . o u t . p r i n t l n ( maChaine ) ; E x e m pl e de p h r a s e s , Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String charAt(int index) S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . c h a r A t ( 2 ) ) ; Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String charAt(int index) S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . c h a r A t ( 2 ) ) ; e Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String charAt(int index) S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . c h a r A t ( 2 ) ) ; e split(String c) S t r i n g maChaine = "Exemple de p h r a s e s " ; S t r i n g [ ] mesMots = maChaine . s p l i t ( " " ) ; f o r ( S t r i n g m : mesMots ) System . o u t . p r i n t l n (m) ; Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String charAt(int index) S t r i n g maChaine = "Exemple de p h r a s e s " ; System . o u t . p r i n t l n ( maChaine . c h a r A t ( 2 ) ) ; e split(String c) S t r i n g maChaine = "Exemple de p h r a s e s " ; S t r i n g [ ] mesMots = maChaine . s p l i t ( " " ) ; f o r ( S t r i n g m : mesMots ) System . o u t . p r i n t l n (m) ; E x e m pl e de phrases Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String substring(int beginIndex, int endIndex) S t r i n g maChaine = "Exemple de p h r a s e s " ; S t r i n g u n e S o u s C h a i n e = maChaine . s u b s t r i n g ( 2 , 5 ) ; System . o u t . p r i n t l n ( u n e S o u s C h a i n e ) ; Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String substring(int beginIndex, int endIndex) S t r i n g maChaine = "Exemple de p h r a s e s " ; S t r i n g u n e S o u s C h a i n e = maChaine . s u b s t r i n g ( 2 , 5 ) ; System . o u t . p r i n t l n ( u n e S o u s C h a i n e ) ; emp Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String substring(int beginIndex, int endIndex) S t r i n g maChaine = "Exemple de p h r a s e s " ; S t r i n g u n e S o u s C h a i n e = maChaine . s u b s t r i n g ( 2 , 5 ) ; System . o u t . p r i n t l n ( u n e S o u s C h a i n e ) ; emp contains(String c), indexOf(String c) S t r i n g maChaine = "Exemple de p h r a s e s " ; i n t r e p o n s e = −1; i f ( maChaine . c o n t a i n s ( " p h r a s e " ) ) r e p o n s e = maChaine . i n d e x O f ( " p h r a s e " ) ; System . o u t . p r i n t l n ( r e p o n s e ) ; Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies String substring(int beginIndex, int endIndex) S t r i n g maChaine = "Exemple de p h r a s e s " ; S t r i n g u n e S o u s C h a i n e = maChaine . s u b s t r i n g ( 2 , 5 ) ; System . o u t . p r i n t l n ( u n e S o u s C h a i n e ) ; emp contains(String c), indexOf(String c) S t r i n g maChaine = "Exemple de p h r a s e s " ; i n t r e p o n s e = −1; i f ( maChaine . c o n t a i n s ( " p h r a s e " ) ) r e p o n s e = maChaine . i n d e x O f ( " p h r a s e " ) ; System . o u t . p r i n t l n ( r e p o n s e ) ; 11 Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies ArrayList 5 - Classes Prédéfinies String ArrayList HashMap Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Les tableaux Un tableau est une collection de valeurs homogènes (même type) En Java, il existe 4 types de tableaux : Taille initiale connue OUI Tableau avec OUI ArrayList une taille dynamique NON Type[ ] NON ArrayList Type[ ] Programmation objet avec Java Classes Prédéfinies ArrayList Tableau avec une taille dynamique : java.util.ArrayList Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Tableau avec une taille dynamique : java.util.ArrayList La liste contient des objets du même type (le type des objets ne peut pas être un type primitif) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Tableau avec une taille dynamique : java.util.ArrayList La liste contient des objets du même type (le type des objets ne peut pas être un type primitif) La déclaration d’une ArrayList se fait de la manière suivante : A r r a y L i s t <Type> m a L i s t = new A r r a y L i s t <Type > ( ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Tableau avec une taille dynamique : java.util.ArrayList La liste contient des objets du même type (le type des objets ne peut pas être un type primitif) La déclaration d’une ArrayList se fait de la manière suivante : A r r a y L i s t <Type> m a L i s t = new A r r a y L i s t <Type > ( ) ; Exemple A r r a y L i s t <Complexe> m a L i s t = new A r r a y L i s t <Complexe > ( ) ; A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Tableau avec une taille dynamique : java.util.ArrayList La liste contient des objets du même type (le type des objets ne peut pas être un type primitif) La déclaration d’une ArrayList se fait de la manière suivante : A r r a y L i s t <Type> m a L i s t = new A r r a y L i s t <Type > ( ) ; Exemple A r r a y L i s t <Complexe> m a L i s t = new A r r a y L i s t <Complexe > ( ) ; A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; Fausse déclaration A r r a y L i s t <i n t > m a L i s t = new A r r a y L i s t <i n t > ( ) ; Programmation objet avec Java Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList add : ajoute un élément à la fin de la liste Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList add : ajoute un élément à la fin de la liste remove : supprime un élément indiqué par sa position Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList add : ajoute un élément à la fin de la liste remove : supprime un élément indiqué par sa position get : renvoie un élément indiqué par sa position Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList add : ajoute un élément à la fin de la liste remove : supprime un élément indiqué par sa position get : renvoie un élément indiqué par sa position size : renvoie la taille de la liste Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList add : ajoute un élément à la fin de la liste remove : supprime un élément indiqué par sa position get : renvoie un élément indiqué par sa position size : renvoie la taille de la liste isEmpty : renvoie "vrai" si la liste est vide Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList add : ajoute un élément à la fin de la liste remove : supprime un élément indiqué par sa position get : renvoie un élément indiqué par sa position size : renvoie la taille de la liste isEmpty : renvoie "vrai" si la liste est vide removeAll : efface un ensemble d’éléments de la liste Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Quelques méthodes utiles de la classe ArrayList add : ajoute un élément à la fin de la liste remove : supprime un élément indiqué par sa position get : renvoie un élément indiqué par sa position size : renvoie la taille de la liste isEmpty : renvoie "vrai" si la liste est vide removeAll : efface un ensemble d’éléments de la liste contains : retourne "vrai" si un élément est dans la liste Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Afficher la liste A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; System . o u t . p r i n t l n ( m a L i s t ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Afficher la liste A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [] Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Afficher la liste A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [] add(Object o) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; System . o u t . p r i n t l n ( m a L i s t ) ; m a L i s t . add ( 1 0 ) ; m a L i s t . add ( 2 0 ) ; m a L i s t . add ( 3 0 ) ; System . o u t . p r i n t l n ( m a L i s t ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList Afficher la liste A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [] add(Object o) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r > ( ) ; System . o u t . p r i n t l n ( m a L i s t ) ; m a L i s t . add ( 1 0 ) ; m a L i s t . add ( 2 0 ) ; m a L i s t . add ( 3 0 ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [] [10 , 20 , 30] Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList remove(int index) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; m a L i s t . remove ( 2 ) ; System . o u t . p r i n t l n ( m a L i s t ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList remove(int index) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; m a L i s t . remove ( 2 ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [10 , 20 , 30] [10 , 20] Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList remove(int index) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; m a L i s t . remove ( 2 ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [10 , 20 , 30] [10 , 20] get(int index) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; System . o u t . p r i n t l n ( m a L i s t . g e t ( 1 ) ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList remove(int index) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; m a L i s t . remove ( 2 ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [10 , 20 , 30] [10 , 20] get(int index) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; System . o u t . p r i n t l n ( m a L i s t . g e t ( 1 ) ) ; [10 , 20 , 30] 20 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList size() A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; System . o u t . p r i n t l n ( m a L i s t . s i z e ( ) ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList size() A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; System . o u t . p r i n t l n ( m a L i s t . s i z e ( ) ) ; [10 , 20 , 30] 3 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList size() A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; System . o u t . p r i n t l n ( m a L i s t . s i z e ( ) ) ; [10 , 20 , 30] 3 isEmpty() A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; i f ( m a L i s t . i s E m p t y ( ) ) System . o u t . p r i n t l n ( "La l i s t e e s t v i d e " ) ; e l s e System . o u t . p r i n t l n ( " I l y a des e l e m e n t s dans l a l i s t e " ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList size() A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; System . o u t . p r i n t l n ( m a L i s t . s i z e ( ) ) ; [10 , 20 , 30] 3 isEmpty() A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; i f ( m a L i s t . i s E m p t y ( ) ) System . o u t . p r i n t l n ( "La l i s t e e s t v i d e " ) ; e l s e System . o u t . p r i n t l n ( " I l y a des e l e m e n t s dans l a l i s t e " ) ; [10 , 20 , 30] I l y a des elements dans l a liste Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList removeAll(Collection<Object> c) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; maList . removeAll ( Arrays . a s L i s t ( 1 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList removeAll(Collection<Object> c) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; maList . removeAll ( Arrays . a s L i s t ( 1 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [10 , 20 , 30] [20] Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList removeAll(Collection<Object> c) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; maList . removeAll ( Arrays . a s L i s t ( 1 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [10 , 20 , 30] [20] contains(Object o) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; i f ( m a L i s t . c o n t a i n s ( 2 0 ) ) System . o u t . p r i n t l n ( "20 e s t dans l a l i s t e ! " ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies ArrayList removeAll(Collection<Object> c) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; maList . removeAll ( Arrays . a s L i s t ( 1 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; [10 , 20 , 30] [20] contains(Object o) A r r a y L i s t <I n t e g e r > m a L i s t = new A r r a y L i s t <I n t e g e r >( A r r a y s . a s L i s t ( 1 0 , 2 0 , 3 0 ) ) ; System . o u t . p r i n t l n ( m a L i s t ) ; i f ( m a L i s t . c o n t a i n s ( 2 0 ) ) System . o u t . p r i n t l n ( "20 e s t dans l a l i s t e ! " ) ; [10 , 20 , 30] 20 e s t d a n s l a liste ! Programmation objet avec Java Classes Prédéfinies HashMap 5 - Classes Prédéfinies String ArrayList HashMap Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Classes Prédéfinies HashMap Tables de hachage : java.util.HashMap Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Tables de hachage : java.util.HashMap Une structures de données permettant de stocker un ensemble de couples (clef,élément) Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Tables de hachage : java.util.HashMap Une structures de données permettant de stocker un ensemble de couples (clef,élément) Chaque élément est référencé par une clef Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Tables de hachage : java.util.HashMap Une structures de données permettant de stocker un ensemble de couples (clef,élément) Chaque élément est référencé par une clef Une même clef ne peut être utilisée qu’une seule fois Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Tables de hachage : java.util.HashMap Une structures de données permettant de stocker un ensemble de couples (clef,élément) Chaque élément est référencé par une clef Une même clef ne peut être utilisée qu’une seule fois La liste contient des clefs et des objets avec un type pour les clefs et un type pour les objets (les deux types ne peuvent pas être des types primitifs). HashMap<T y p e C l e f , TypeElement> maMap = new HashMap<T y p e C l e f , TypeElement > ( ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Exemple de déclaration HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Exemple de déclaration HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; Fausse déclaration HashMap<S t r i n g , i n t > maMap = new HashMap<S t r i n g , i n t > ( ) ; Programmation objet avec Java Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap Idir AIT SADOUNE<[email protected]> Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap put : ajoute un couple (clef,élément) à la fin de la map Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap put : ajoute un couple (clef,élément) à la fin de la map remove : supprime un élément indiqué par sa clé Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap put : ajoute un couple (clef,élément) à la fin de la map remove : supprime un élément indiqué par sa clé get : renvoie un élément indiqué par sa clé Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap put : ajoute un couple (clef,élément) à la fin de la map remove : supprime un élément indiqué par sa clé get : renvoie un élément indiqué par sa clé size : renvoie la taille de la map Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap put : ajoute un couple (clef,élément) à la fin de la map remove : supprime un élément indiqué par sa clé get : renvoie un élément indiqué par sa clé size : renvoie la taille de la map containsKey : teste si la map contient une clef Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap put : ajoute un couple (clef,élément) à la fin de la map remove : supprime un élément indiqué par sa clé get : renvoie un élément indiqué par sa clé size : renvoie la taille de la map containsKey : teste si la map contient une clef containsValue : teste si la map contient un objet Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Quelques méthodes utiles de la classe HashMap put : ajoute un couple (clef,élément) à la fin de la map remove : supprime un élément indiqué par sa clé get : renvoie un élément indiqué par sa clé size : renvoie la taille de la map containsKey : teste si la map contient une clef containsValue : teste si la map contient un objet values : renvoie tous les objets de la map Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Affichage HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap Affichage HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; {} Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap put(Object key, Object element) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; System . o u t . p r i n t l n (maMap ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap put(Object key, Object element) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; System . o u t . p r i n t l n (maMap ) ; {} { Maths =15 , I n f o r m a t i q u e =18 , P h y s i q u e =13} Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap remove(Object key) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; maMap . remove ( " P hy siq ue " ) ; System . o u t . p r i n t l n (maMap ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap remove(Object key) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; maMap . remove ( " P hy siq ue " ) ; System . o u t . p r i n t l n (maMap ) ; { Maths =15 , I n f o r m a t i q u e =18 , P h y s i q u e =13} { Maths =15 , I n f o r m a t i q u e =18} Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap get(Object key) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; System . o u t . p r i n t l n (maMap . g e t ( " I n f o r m a t i q u e " ) ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap get(Object key) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; System . o u t . p r i n t l n (maMap . g e t ( " I n f o r m a t i q u e " ) ) ; { Maths =15 , I n f o r m a t i q u e =18 , P h y s i q u e =13} 18 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap size() HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; maMap . remove ( " P hy siq ue " ) ; System . o u t . p r i n t l n (maMap . s i z e ( ) ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap size() HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; maMap . remove ( " P hy siq ue " ) ; System . o u t . p r i n t l n (maMap . s i z e ( ) ) ; { Maths =15 , I n f o r m a t i q u e =18 , P h y s i q u e =13} 3 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap containsKey(Object key) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; i f (maMap . c o n t a i n s K e y ( " I n f o r m a t i q u e " ) ) System . o u t . p r i n t l n (maMap . g e t ( " I n f o r m a t i q u e " ) ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap containsKey(Object key) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; i f (maMap . c o n t a i n s K e y ( " I n f o r m a t i q u e " ) ) System . o u t . p r i n t l n (maMap . g e t ( " I n f o r m a t i q u e " ) ) ; { Maths =15 , I n f o r m a t i q u e =18 , P h y s i q u e =13} 18 Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap containsValue(Object value) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; maMap . remove ( " P hy siq ue " ) ; i f (maMap . c o n t a i n s V a l u e ( 1 5 ) ) System . o u t . p r i n t l n ( "La v a l e u r 15 e x i s t e " ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap containsValue(Object value) HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; maMap . remove ( " P hy siq ue " ) ; i f (maMap . c o n t a i n s V a l u e ( 1 5 ) ) System . o u t . p r i n t l n ( "La v a l e u r 15 e x i s t e " ) ; { Maths =15 , I n f o r m a t i q u e =18 , P h y s i q u e =13} La v a l e u r 15 e x i s t e Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap values() HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; System . o u t . p r i n t l n (maMap . v a l u e s ( ) ) ; Programmation objet avec Java Idir AIT SADOUNE<[email protected]> Classes Prédéfinies HashMap values() HashMap<S t r i n g , I n t e g e r > maMap = new HashMap<S t r i n g , I n t e g e r > ( ) ; System . o u t . p r i n t l n (maMap ) ; maMap . p u t ( "Maths" , 1 5 ) ; maMap . p u t ( " P hy siq ue " , 1 3 ) ; maMap . p u t ( " I n f o r m a t i q u e " , 1 8 ) ; System . o u t . p r i n t l n (maMap . v a l u e s ( ) ) ; { Maths =15 , I n f o r m a t i q u e =18 , P h y s i q u e =13} [15 , 18 , 13]