Génie Logiciel - 2 - L`approche Objet avec Java

publicité
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]
Téléchargement