Vous êtes sur la page 1sur 28

Université de Sciences, de Technologie et de Médecine de Nouakchott

Faculté de Sciences et Techniques


Département de Mathématiques-Informatique

L2 Informatique – S4

Programmation Orientée Objets


Java

Mohamed Lamine Diakité

Année universitaire 2013/201

Plan du Cours
Introduction aux concepts de l’approche orientée objets
Types de données en java
Les structures itératives et conditionnelles
Classe java
déclaration classe, constructeur d’une classe, attributs d’une classe
Création des objets
Les modificateurs d’accès (public, private, protected,…)
Les méthodes
déclaration , surcharge, redéfinition d’une méthode
Création et utilisation des packages
Les variables de classe & les constantes (static-final)
L’héritage en java
Les classes abstraites et les interfaces
Présentation de quelques packages prédéfinis de java
Les entrées et sorties
Manipulation des chaînes de caractères
Tableaux et collections de données
La gestion d’erreurs (les exceptions)
Les classes internes
Les interfaces graphiques

1
Partie I
Introduction aux concepts de l’Approche
Orientée Objets

I. Introduction aux concepts de l’Approche Orientée Objets (1) …

Objectifs de la POO :
• Conception de l’organisation de grands projets informatiques autour d’entités précisément structurées (objets)
• Amélioration de la sûreté des logiciels en gérant l’accès aux données sensibles (encapsulation)
• Simplifier la réutilisation de code grâce à l’extension des objets existants (héritage) et partage des méthodes
(polymorphisme)

Les concepts de l’OO :


• Notion d’Objet : C’est une unité logique (ou une entité) manipulée par un langage (OO)
Il est défini par :
1. Une identité qui permet de distinguer les objets entre eux, chaque objet a une existence concrète
2. Un état interne représenté par des attributs (ou variables) auxquels des valeurs sont affectées
3. Un comportement défini par des méthodes modifiant les états.

• Notion de classe: Elle regroupe l’ensemble des objets ayant en commun les mêmes caractéristiques

2
I. Introduction aux concepts de l’Approche Orientée Objets (2)…
Exemple de classe
Classe Personne

Personne

NCIN : entier
Nom : chaine de caractères
Les Attributs
Date Naissance : date
Taille : réel

QuelNom() : chaine de caractères


Les méthodes QuelleDate() : date
(comportement) Grandir(réel)

LaPersonne1 est un objet de la classe Personne


Objet
LaPersonne1 est une instance de la classe Personne
LaPersonne1
Créer un objet = instanciation
NCIN=44556677
Nom = Med Ali
Date Naissance=12/11/1994
Taille = 1,70 Affectation des valeurs aux attributs
5

I. Introduction aux concepts de l’Approche Orientée Objets (3)…


Les concepts de l’OO :
• Méthode: Elle contient le code définissant le comportement de l’objet

• Encapsulation: C’est un mécanisme de protection correspondant au fait que des champs et des méthodes
privées ne soient accessibles par l’utilisateur d’une classe que par certaines méthodes publiques
(exemple des données privées)
• Héritage: Il permet de redéfinir une nouvelle classe à partir d’une classe existante.

Extensibilité de la classe existante


La sous-classe
Hérite les attributs et les comportements de la classe mère

Éviter de redéfinir les méthodes et les attributs hérités


Ajout des comportements spécifiques aux objets de la sous-classe
Modifier certains comportements dans la sous-classe

3
I. Introduction aux concepts de l’Approche Orientée Objets (4)…
Exemple d’héritage
Personne Classe existante = classe mère

NCIN : entier
Nom : chaine de caractères
Date Naissance : date
Taille : réel

QuelNom() : chaine de caractères


QuelleDate() : date
Grandir(réel)

Employé Etudiant
DateEmbauche :date Matricule :entier
Service: chaine de caractères classe: chaine de caractères
Salaire:entier NomFac:chaine de caractères
Tél:entier MoyenneG: réel
QuelleDteEmbauche():date QuelleMoyenne :réel
QuelSalaire() :entier Quelleclasse: ch.de caractères
ModifMoy(réel)
Les classes Employé et Etudiant = Sous-classes de la classe Personne 7

I. Introduction aux concepts de l’Approche Orientée Objets (5)…


Les concepts de l’OO :
• Polymorphisme:

Capacité de lier l’objet à la bonne méthode lors de la compilation


Les objets des sous-classes sont vues comme des objets de la classe mère de manière transparente

4
I. Introduction aux concepts de l’Approche Orientée Objets (5)…
Les concepts de l’OO :
• Polymorphisme:

Personne
Employé
NCIN : entier DateEmbauche :date
Nom : chaine de caractères Service: chaine de caractères
Date Naissance : date Salaire:entier Sous-classe
Taille : réel Tél:entier de la classe Personne

QuelNom() : chaine de caractères QuelleDteEmbauche():date


QuelleDate() : date QuelSalaire() :entier
Grandir(réel)

La méthode est-elle présente


dans la sous-classe?

MonEmployé
DateEmbauche :15/10/2012
Service: Comptabilité MonEmployé.QuelNom ( )
Salaire:180000
Tél:22 33 44 55
Objet de la sous-classe 9
MonEmployé

I. Introduction aux concepts de l’Approche Orientée Objets (5)…


Les concepts de l’OO :
• Polymorphisme:

Personne
Employé
NCIN : entier DateEmbauche :date
Nom : chaine de caractères Service: chaine de caractères
Date Naissance : date Salaire:entier Sous-classe
Taille : réel Tél:entier de la classe Personne

QuelNom() : chaine de caractères QuelleDteEmbauche():date


QuelleDate() : date QuelSalaire() :entier
Grandir(réel)

Sinon chercher dans la


Classe-mère

MonEmployé
DateEmbauche :15/10/2012
Service: Comptabilité MonEmployé.QuelNom()
Salaire:180000
Tél:22 33 44 55
Objet de la sous-classe 10
MonEmployé

5
Partie II
Types de données en java

II. Types de données en java

Deux types de données

Types primitifs

Type Description (codage)

byte Entier signé sur 1 octet (8 bits)

boolean Booléen su 1 bit (true/ false)

char Caractère sur 2 octets (codage Unicode)

short Entier signé sur 2 octets

int Entier signé, 4 octets

long Entier signé sur 8 octets

float (norme IEEE 754) - flottant sur 4 octets

double (norme IEEE 754) - flottant sur 8 octets

Types objets

String (chaîne de caractères), etc.


Tous les types primitifs ont leur équivalent en objets A voir plus loin… 12

6
II. Types de données en java

Types primitifs

Déclaration
int x,y;
char c;
boolean rep;

Initialisation

Possibilité de d’initialiser les variables au moment de leur déclaration

int x,y;
int x=5,y=12; x=5;
char c=’Y’; y=12;
boolean rep=true; char c;
c=’Y’
boolean rep;
rep=true;

13

II. Types de données en java

Conversion de types

14

7
II. Types de données en java

Transtypage (le cast)

Transformation vers un autre type


Exemple

int i=16;
byte b=(byte)i;// de 32 bits vers 8 bits
i=(int)15.575; // de flottant vers entier; i ne contient que des entiers
char c=’a’;
i=’c’; // de 16 bits vers 32 bits

Peut occasionner parfois une perte d’information


int i=10000;
byte b=(byte)i; // b ne pourra contenir plus de 127 si non signé

15

II. Types de données en java

Les opérateurs

Sur les entiers et réels

Sur les entiers

Sur les entiers et réels

16

8
II. Types de données en java

Les opérateurs

A utiliser surtout la méthode equals( )


lors de la comparaison des chaînes de caractères

Sur les booléens

17

Partie III
Structures de contrôle conditionnelle
et itératives

9
III. Structures de contrôle

Conditionnelles

19

III. Structures de contrôle


A choix multiples
switch identificateur switch identificateur
{ {
case valeur1 : instructions1; case valeur1 : instructions1;break;
case valeur2 : instructions2; case valeur2 : instructions2;break;
case valeur3 : instructions3; case valeur3 : instructions3;break;
…. ….
default : instruction par défaut ; default : instruction par défaut ;
} }
Si les instructions doivent s’exécuter de façon exclusive
Alors utiliser l’instruction break pour sortir de la structure
Exemple
int NumMois;
switch (NumMois)
{
case 1: System.out.println(’’Janvier’’);break;
case 2 : System.out.println(’’Février’’);break;
case 3 : System.out.println(’’Mars’’);break;
….
case 12 : System.out.println(’’Décembre’’);break;
default : System.out.println(’’Ce n’est pas un mois!!!’’);
} 20

10
III. Structures de contrôle

Itératives

21

III. Structures de contrôle

Itératives

22

11
III. Structures de contrôle

Itératives

Si test non vrai à la rentrée de la boucle

23

III. Structures de contrôle

Itératives

continue

for(int i=1;i<12;i++)
{ Valeur de i paire = 2
Valeur de i paire = 4
if(i==6)
Valeur de i paire = 8
continue; Valeur de i paire = 10
if(i%2==0)
System.out.println(’’Valeur de i paire = ’’+i);
}

break
for(int i=1;i<12;i++)
Valeur de i = 1
{ Valeur de i = 2
if(i==8) Valeur de i = 3
break; Valeur de i = 4
else Valeur de i = 5
System.out.println(’’Valeur de i = ’’+i); Valeur de i = 6
} Valeur de i = 7

24

12
Partie IV
Classe Java et création d’Objets

IV. Classe Java et création d’objets

Classe java
Une classe java (type complexe) est constituée:
• d’attributs
• d’un ou de plusieurs constructeurs
• de méthodes

Constructeur d’une classe


Comme une fonction avec des arguments ayant le même nom que la classe
Permet d’initialiser les attributs (variables) au moment de la création des objets
Toute classe java possède au moins un constructeur avec des arguments si défini
Si aucun constructeur n’est défini explicitement, alors un constructeur sans arguments
par défaut est associé à la classe
Il a le même nom que la classe

26

13
IV. Classe Java et création d’objets
Constructeur d’une classe

Exemple public class Rectangle { // Nom de la classe


int Longueur, Largeur;
public Rectangle(int Lo, int La){
Rectangle
Longueur=Lo;
Longueur : entier Largeur=La;
Largeur: entier }
int Perimetre( ){
Perimetre ( ) : entier
return (Longueur+Largeur)*2;
Surface( ) : entier
}
int Surface( ){
return Longueur*Largeur;
}
}

27

IV. Classe Java et création d’objets


Constructeur d’une classe

Exemple public class Rectangle {


int Longueur, Largeur; Constructeur de la classe

public Rectangle(int Lo, int La){


Rectangle
Longueur=Lo;
Longueur : entier Largeur=La;
Largeur: entier }
int Perimetre( ){
Perimetre ( ) : entier
return (Longueur+Largeur)*2;
Surface( ) : entier
}
int Surface( ){
return Longueur*Largeur;
}
}

Les arguments du constructeur sont Lo et La

28

14
IV. Classe Java et création d’objets
Constructeur d’une classe

Exemple public class Rectangle {


int Longueur, Largeur;
public Rectangle(int Lo, int La){
Rectangle Longueur=Lo;
Largeur=La;
Attributs Longueur : entier }
Largeur: entier
int Perimetre( ){
Perimetre ( ) : entier return (Longueur+Largeur)*2;
Méthodes Surface( ) : entier }
int Surface( ){
return Longueur*Largeur;
}
}

Les 2 méthodes

29

IV. Classe Java et création d’objets


Structure générale d’une classe

class NomClasse {
//déclaration d’attributs
Type NomAttributs;
//Constructeurs de la classe
public NomClasse(arguments){
//instructions d’initialisation
}
//Méthodes de la classe
TypeRetour NomMethode1(arguments){
//instructions
}
….
TypeRetour NomMethode2(arguments){
//instructions
}
}
30

15
IV. Classe Java et création d’objets
Structure générale d’un programme java

Méthodes
La méthode main( ) permet
d’exécuter le programme après
compilation

Le nom de la classe doit porter le nom du fichier Classe principale (public)


nom_prg.java
31

IV. Classe Java et création d’objets


Création d’objets

La création d’un objet à partir d’une classe est appelée une instanciation (objet=instance de la classe)
Nécessite l’appel du constructeur
Créer un objet:

• Déclaration : définit le nom et le type de l’objet (vaut null si seulement déclaré)

• Création et allocation de la mémoire par l’appel du constructeur

Reserve la mémoire et initialise les objets


Exemple

Rectangle
MonRectangle
Longueur : entier
Largeur: entier Longueur : 25
Rectangle MonRectangle =
Largeur: 15 new Rectangle(25,15);
Perimetre ( ) : entier
Surface( ) : entier

L’objet de Rectangle
32

16
IV. Classe Java et création d’objets
Exercices

1. Un point du plan est défini par ses coordonnées


abscisse et ordonnée (x,y). Après avoir identifié les
attributs de la classe Point, écrire la classe Point ainsi
que son constructeur.
2. Créer un objet Point de coordonnées (15,10).
3. On se propose de définir un rectangle par la
connaissance des coordonnées de ses points supérieur
gauche et inférieur droit (Pg et Pd). Ecrire la classe
Rectangle ainsi que son constructeur en précisant au
préalable ses attributs.
4. Créer un objet Rectangle dont les points supérieur
gauche et inférieur droit ont respectivement pour
coordonnées (20,15) et (30,5).

33

IV. Classe Java et création d’objets


Java est un langage semi-compilé et semi-interprété

• Un programmeur Java écrit son code source, sous la forme de classes, dans des
fichiers dont l’extension est .java. Ce code source est alors compilé par le
compilateur javac en un langage appelé bytecode et enregistre le résultat dans
un fichier dont l’extension est .class

• Le bytecode ainsi obtenu n’est pas directement utilisable. Il doit être interprété
par la machine virtuelle de Java qui transforme alors le code compilé en code
machine compréhensible par le système d’exploitation.

• C’est la raison pour laquelle Java est un langage portable : le bytecode reste
le même quelque soit l’environnement d’exécution.

34

17
Exemple
Code source
java MonProg.java

Compilateur
javac MonProg.java

Bytecode /Pseudo-code
MonProg.class

Interpréteur
java MonProg

Code machine
Virtualisation

Système d’exploitation
Système d’exploitation

35

Partie V
Les modificateurs d’accès

18
V. Les modificateurs d’accès
Accessibilité des membres d’une classe à une autre classe

Membres d’une classe = attributs + méthodes

On a 4 spécificateurs d’accès :
• public : les membres publics sont tous visibles
• protected : ils ne sont visibles que par les classes filles ou de même package
• private : ils ne sont pas visibles
• ’’friendly’’ (sans spécificateur d’accès), les membres ne sont visibles que par les
classes du même package.

Le spécificateur doit se placer devant chaque membre


Exemple
public int x;
private float y;
public void MaMethode(){

} 37

Partie VI
Les Méthodes

19
VI. Les méthodes
Déclaration de méthodes
Les méthodes décrivent les traitements réalisés par la classe
Elles forment l’interface permettant de manipuler les objets
Elles sont protégées par des droits d’utilisation public, private, protected, final, abstract
Elles retournent le résultat du traitement (return objet ou type primitif) ou rien (void)
Prennent une liste de variables comme arguments (Type var1, Type var2, …, Type varn)

Syntaxe : DroitAcces TypeRetour NomMethode(listeArgument){


TypeRetour V;
// Instructions de traitement

return V;
}
Ou bien
DroitAcces void NomMethode(listeArgument){
// Instructions de traitement

} 39

VI. Les méthodes


Signature d’une méthode

Correspond à une déclaration de méthode :{Type de retour, nom, liste de paramètres}


Surcharge d’une méthode

• Création d’autres méthodes avec le même nom


• Nécessité de changer la signature
- Changement du type de retour ne suffit pas
- Changement du type d’au moins un paramètre
- Ajout/Suppression des paramètres à la liste de paramètres

Exemple de surcharge
int somme(int a, int b) { return a + b; }
float somme(float a, float b) { return a + b; }
int somme(int a, int b, int c) { return a + b + c; }

float somme(int a, int b) { return a + b; } Erreur!!!


Redéfinition d’une méthode
Conserver la déclaration d’une méthode dans la classe fille en changeant juste le code
40

20
Partie VII
Création et utilisation des packages

41

VII. Création et utilisation des packages


Utilisation d’un package

Création d’un package


• Doit être la première instruction dans un programme java
package Nom.Package; • Entraîne la création du répertoire :
Dossier de travail/Nom/Package
42

21
Partie VIII
Les variables de classe et les constantes

VII. Variables de classe et constantes


Variable de classe / variable d’instance
• Une variable de classe est partagée entre toutes les instances d’une même classe; elle
n’existe qu’une seule fois.
• Elle permet de stocker une constante ou une valeur modifiée tour à tour par les instances
de la classe.
• Elle se définit avec le mot clé static
• Une variable d’instance est propre à un objet

44

22
IV. Classe Java et création d’objets

Structure générale d’une classe

45

46

23
47

48

24
49

Les Collections de données

50

25
Les Collections
Une collection est une structure de données (correspondant en fait à un objet) qui peut contenir d’autres objets.

On dispose d’une bibliothèque composée de classes et d’interfaces pour gérer les collections.
Les interfaces à utiliser par des objets qui gèrent des collections sont :
• Collection : interface qui est implémentée par la plupart des objets qui gèrent des collections
• Map : interface qui définit des méthodes pour des objets qui gèrent des collections sous la forme clé/valeur
• Set : interface pour des objets qui n'autorisent pas la gestion des doublons dans l'ensemble
• List : interface pour des objets qui autorisent la gestion des doublons et un accès direct à un élément
• SortedSet : interface qui étend l'interface Set et permet d'ordonner l'ensemble
• SortedMap : interface qui étend l'interface Map et permet d'ordonner l'ensemble
(cf. documentation)

Les interfaces des collections définissent des opérations qui peuvent être réalisées sur chaque type de collection.

La bibliothèque propose plusieurs objets qui implémentent ces interfaces et qui peuvent être directement utilisés, exemple :
• HashSet : qui implémente l'interface Set
• ArrayList : tableau dynamique qui implémente l'interface List
• LinkedList : liste doublement chaînée (parcours de la liste dans les deux sens) qui implémente l'interface List
• HashMap : HashTable qui implémente l'interface Map

La bibliothèque définit aussi des interfaces pour faciliter le parcours des collections et leur tri :

• Iterator, Enumeration : interface pour le parcours des collections


• ListIterator : interface pour le parcours des listes dans les deux sens et modifier les éléments lors de ce parcours

51

1. Les tableaux
java.util.Arrays fournit des méthodes pour la manipulation de tableaux

Pour le tri, la méthode sort(Tableau) est utilisée; elle retourne un tableau trié
Pour la recherche la méthode binarySearch(tableau, element) est utilisée, elle retourne la position à laquelle se trouve l’élément
Pour initialiser un tableau on peut utiliser la méthode fill(tableau) ou fill (tableau, IndexDep, IndexFin, Val)

La méthode fill(tableau, Val) initialise tous les éléments du tableau avec la valeur Val
La méthode fill(tableau, IndexDep, IndexFin,Val) initialise tous les éléments du tableau compris entre les
Indices IndexDep et IndexFin-1 avec la valeur Val

Exemple :

int[] TablEnt=new int[]{3,6,7,2};//tableau de 4 entiers


Arrays.sort(TablEnt); //tri le tableau TablEnt
int pos=Arrays.binarySearch(TablEnt,7);// retourne la valeur 2
int[ ] Tabl2=new int[5];
Tabl2=TableEnt.clone(); //copie le contenu du tableau TableEnt dans le tableau Tabl2
Arrays.fill(TablEnt,1,3,0); // Le tableau TablEnt deviendra {3,0,0,2}

52

26
2. La classe Vector (1)…
Package java.util.* (import java.util.*;)
Un objet de la classe Vector peut être considéré comme une tableau évolué qui peut contenir un nombre indéterminé
d'objets. Ses principales méthodes sont les suivantes :

Type / Méthode Rôle


Type / Méthode Rôle
Retourne true si le vecteur V
Ajout d’un élément dans le V.isEmpty()
V.addElement(Object) est vide sinon false
vecteur V
Retourne le dernier élément
Retourne true si l’objet se V.lastElement()
V.contains(Object) du vecteur V
trouve dans le vecteur V
Supprime tous les éléments
Retourne l’élément se V.removeAllElements()
du vecteur V
V.elementAt(index) trouvant à l’index de type
int du vecteur V Supprime l’objet du vecteur
V.removeElement(Object)
Retourne une énumération V
V.elements( ) donnant tous les éléments
du vecteur V.removeElementAt(inde Supprime l’objet du vecteur
x) V se trouvant à index
Retourne le premier
V.firstElement( ) élément du vecteur V (son Retourne la taille du vecteur
V.size()
index est 0) V

Renvoie l’index auquel se


trouve l’object, s’il ne s’y On peut stocker des objets de classes différentes dans un vecteur mais
V.indexOf(Object) les éléments stockés doivent obligatoirement être des objets.
trouve pas alors elle
renvoie -1
V.insertElementAt(Object, Insérer un objet à l'index
int) indiqué dans le vecteur V
V.setElementAt(Object, Remplacer l'élément à
index) l'index par l'objet 53

2. La classe Vector (2)


Exemple :
Vector V=new Vector();
V.addElement(new Integer(18)); //insertion de l’entier 18 dans le vecteur
V.addElement(new Float(3.1416));
V.insertElementAt("Bonjour",1); //insertion de la chaine "Bonjour" à la position 1
System.out.println(" le vecteur contient "+V.size()+ " elements ");
Integer Elem1 = (Integer)v.elementAt(0);
System.out.println("le 1er element = "+Elem1);

Note :Les variables de type primitif ne sont pas reconnues comme des objets. Pour les transformer en objets chaque type
primitif possède son équivalent objet (voir le tableau ci-dessous).

Type boolean char short int Long float double


primitif
Classe Boolean Character Short Integer Long Float Double
équivalente

Les classes équivalentes assurent les services suivants :


· Un constructeur qui permet une instanciation à partir du type primitif et un constructeur qui permet une
instanciation à partir d'un objet String
· Une méthode pour fournir la valeur primitive représentée par l'objet
· Une méthode equals() pour la comparaison.
Pour obtenir la valeur contenue dans l'objet, il faudra utiliser la méthode typeValue() ou type correspond au nom du type primitif.
Exemple: Integer i = new Integer(15); // création d’un objet Integer à partir de l’entier 15
Float f = new Float(3.14); // création d’un objet Float à partir dd décimal 3.14
int j= i.intValue(); // récupération à partir de l’objet Integer de sa valeur entier

Il est possible de récupérer d’une chaîne de caractères un entier à partir de la méthode parseInt( ) de la classe Integer
Exemple:
String CharEntier="9"; //caractère contenant 9
int k= Integer.parseInt(CharEntier); // retourne l’entier 9 54

27
3. La classe Stack
Package java.util.* (import java.util.*;)

La classe Stack étend la classe Vector pour réaliser une structure de données en pile. Comme la classe Vector, elle est conçue pour
stocker des objets. La classe Stack possède tous les caractéristiques et comportements de Vector en plus de ses comportements spécifiques.

NB: Pour stocker de types de données primitifs, il faut utiliser leurs classes équivalentes
(Boolean, Character, Short, Integer, Long, Float, Double)

Exemple:
import java.util.*; Note:
public class Stacks {
• La méthode peek() renvoie l’élément (objet) se trouvant
static String[ ] Mois = {"Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin",
au sommet de la pile (le dernier à être inséré) sans le
"Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre" };
supprimer de la pile.
public static void main(String[ ] args) {
•La méthode pop() affiche l’élément du sommet de la pile et
Stack stk = new Stack();
le supprime.
for (int i = 0; i < Mois.length; i++)
stk.push(Mois[i] + " "); //Ajout au début de la pile
• La méthode push() ajoute au sommet de la pile un élément; elle fait
System.out.println("stk = " + stk); //Affiche tous les élements de la pile
exactement comme la méthode addElement() de la classe Vector.
// Traiter une pile comme un Vector :
stk.addElement("Fin de l’annee");
System.out.println("element 5 = " + stk.elementAt(5));

System.out.println("popping elements:");
while(!stk.empty())
System.out.println(stk.pop());
}
}

55

4. La classe Hashtable
Package java.util.* (import java.util.*;)

Les informations d'une Hashtable sont stockées sous la forme clé − données. Cet objet peut être considéré comme
un dictionnaire. Les clés et les données peuvent être n’importe quel type d’objet. La classe Dictionary (abstraite) est
la superclasse de la classe Hashtable.

Exemple:
Hashtable dico=new Hashtable();
Pour supprimer un élément utiliser la méthode remove (clé)
dico.put(new Integer(1), "Un" );
Exemple: dico.remove(new Integer(1)); //Supprime l’élément
dico.put(new Integer(2), "Deux" );
System.out.println((String)dico.get(new Integer(1))); //affiche la chaine "Un" int n=dico.size() //retourne la taille de dico (nbre éléments)
System.out.println((String)dico.get(new Integer(2))); //affiche la chaine "Deux"

4. L’interface Enumeration
L'interface Enumeration est utilisée pour permettre le parcours séquentiel des collections (Vector, Stack, Hashtable).
Elle définit 2 méthodes :
- hasMoreElements ( ) : de type booléen, elle retourne true si l’énumération contient encore un ou plusieurs éléments
- nextElement( ) : retourne l’objet suivant de l’énumération

On dispose également de l'interface Iterator permet aussi le parcours séquentiel des données d’une collection (Vector, Stack, Hashtable, Set). La différence
avec l’interfac Enumeration se trouve dans les noms de méthodes mais également la possibilité de supprimer le dernier élément parcouru avec l’interface
Iterator.
Vector V =new Vector()
Exemples: Vector V =new Vector()
V.add("Un");
V.add("Un");
V.add("Deux");
V.add(« Deux");
iterator it=V.iterator();
Enumeration e=V.elements();
while(it.hasNext())
while(e.hasMoreElements())
{
{
//affiche les éléments du vecteur V
//affiche les éléments du vecteur V
System.out.println(it.next ());
System.out.println(e.nextElements());
}
}
it.remove(); //Supprime le dernier élément parcouru
//V contient désormais un seul élément Un
56
Note: Les classes ArrayList, HashSet, HashMap implémentent respectivement les interfaces List, Set et Map

28

Vous aimerez peut-être aussi