Vous êtes sur la page 1sur 36

´

El´ements de base en Java (suite et fin)

P.O.O.

LMI 2 – Semestre 4 – Option Info

Ann´ee 2008-09

LMI 2 – Semestre 4 – Option Info Ann´ee 2008-09 1/33 ´ El´ements de base en

1/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

2 – Semestre 4 – Option Info Ann´ee 2008-09 1/33 ´ El´ements de base en Java

Plan du cours

Les chaˆınes de caract`eres

Retour vers les objets Les constructeurs Le m´ecanisme de cr´eation et d’initialisation d’un objet Dur´ee de vie des variables et des objets Surcharge de m´ethodes Variables de classe et variables d’instance Accessibilit´e Accesseurs This

et variables d’instance Accessibilit´e Accesseurs This 2/33 ´ El´ements de base en Java (suite et fin)

2/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

variables d’instance Accessibilit´e Accesseurs This 2/33 ´ El´ements de base en Java (suite et fin) Ann´ee

Plan du cours

Les chaˆınes de caract`eres

Retour vers les objets Les constructeurs Le m´ecanisme de cr´eation et d’initialisation d’un objet Dur´ee de vie des variables et des objets Surcharge de m´ethodes Variables de classe et variables d’instance Accessibilit´e Accesseurs This

et variables d’instance Accessibilit´e Accesseurs This 3/33 ´ El´ements de base en Java (suite et fin)

3/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

variables d’instance Accessibilit´e Accesseurs This 3/33 ´ El´ements de base en Java (suite et fin) Ann´ee

La classe String

`a noter : pas obligatoirement de new pour cr´eer un objet String ;

une String est impl´ement´ee comme un tableau constant de caract`eres ;

on ne modifie pas une String, on cr´e´e un nouvel objet String (la classe String est une classe non modifiable).

String (la classe String est une classe non modifiable). 4/33 ´ El´ements de base en Java

4/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

(la classe String est une classe non modifiable). 4/33 ´ El´ements de base en Java (suite

La classe String

Quelques m´ethodes :

int length() char charAt(int ind) boolean equals(String s) int indexOf(char c) String substring(int d´ebut,int fin) String substring(int d´ebut) String trim()

d´ebut,int fin) String substring(int d´ebut) String trim() 5/33 ´ El´ements de base en Java (suite et

5/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

fin) String substring(int d´ebut) String trim() 5/33 ´ El´ements de base en Java (suite et fin)

Les classes StringBuffer et StringBuilder

Les classes StringBuffer et StringBuilder impl´ementent les chaˆınes de caract`eres, comme la classe String, `a la diff´erence qu’une instance de StringBuffer ou de StringBuilder est modifiable.

plus efficace lorsqu’on effectue beaucoup de modifications sur une chaˆıne de caract`eres.

beaucoup de modifications sur une chaˆıne de caract`eres. 6/33 ´ El´ements de base en Java (suite

6/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

de modifications sur une chaˆıne de caract`eres. 6/33 ´ El´ements de base en Java (suite et

Les classes StringBuffer et StringBuilder

Les principales m´ethodes : append,

insert,

StringBuilder a de meilleures performances que StringBuffer, mais n’est pas robuste par rapport aux acc`es concurrents.

StringBuilder existe depuis le JDK 1.5.

StringBuilder est la classe habituellement utilis´ee.

1.5. StringBuilder est la classe habituellement utilis´ee. 7/33 ´ El´ements de base en Java (suite et

7/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

StringBuilder est la classe habituellement utilis´ee. 7/33 ´ El´ements de base en Java (suite et fin)

Exemple

On veut qu’une biblioth`eque affiche tous les livres qu’elle contient :

On pourrait ´ecrire

//

public

Dans

la

classe

Bibliotheque

String

toString(){

String

tmp

=

"Biblioth`eque

:

"

+

nom;

if

(dernier>=0)

{

tmp

+=

"Liste

des

livres

:\n");

 

for

(int

i=0;i<=dernier;i++){

 

tmp

+=

biblio[i].toString()

+

"\n";

}

}

else

 
 

tmp

+=

"\n

Pas

de

livres

pour

le

moment!";

return

}

Pas de livres pour le moment!"; return } tmp; 8/33 ´ El´ements de base en Java

tmp;

8/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

livres pour le moment!"; return } tmp; 8/33 ´ El´ements de base en Java (suite et

Exemple

Mais il faut ´ecrire :

//

public

StringBuilder

Dans

la

classe

Bibliotheque

String

toString(){

=

sb

new

StringBuilder();

sb.append("Biblioth`eque

:

");

sb.append(nom);

 

if

(dernier>=0)

{

sb.append("\n

Liste

des

livres

:\n");

for

(int

i=0;i<=dernier;i++){

sb.append(biblio[i].toString());

sb.append("\n");

 

}

}

else

 

sb.append("\n

return

´

9/33

Pas

de

livres

}
}

pour

sb.toString();

El´ements de base en Java (suite et fin)

le

moment!");

´ 9/33 Pas de livres } pour sb.toString(); El´ements de base en Java (suite et fin)

Ann´ee 2008-09

Plan du cours

Les chaˆınes de caract`eres

Retour vers les objets Les constructeurs Le m´ecanisme de cr´eation et d’initialisation d’un objet Dur´ee de vie des variables et des objets Surcharge de m´ethodes Variables de classe et variables d’instance Accessibilit´e Accesseurs This

et variables d’instance Accessibilit´e Accesseurs This 10/33 ´ El´ements de base en Java (suite et fin)

10/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

variables d’instance Accessibilit´e Accesseurs This 10/33 ´ El´ements de base en Java (suite et fin) Ann´ee

Les constructeurs

par d´efaut, un objet est construit `a l’aide de l’op´erateur new, et d’un constructeur par d´efaut :

public

class

Personne{

private

String

nom;

private

String

prenom;

private

int

age

=

18;

}

Personne

p

=

new

Personne();

Par d´efaut, le m´ecanisme d’instanciation fait comme s’il y avait un constructeur vide (= le constructeur par d´efaut) dans la classe

public

Personne(){}

les initialisations faites dans les d´eclarations d’attributs sont prises en compte (ici, p.age vaut 18)

d’attributs sont prises en compte (ici, p.age vaut 18 ) 11/33 ´ El´ements de base en

11/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

sont prises en compte (ici, p.age vaut 18 ) 11/33 ´ El´ements de base en Java

Les constructeurs

On peut d´ecider comment se construisent les objets :

public

class

Personne{

private

String

nom;

 

private

String

prenom;

 

private

int

age

=

18;

public

Personne(String

nom,

String

prenom){

}

}

this.nom

this.prenom

=

nom;

=

prenom;

la pr´esence d’un constructeur annule le m´ecanisme du constructeur par d´efaut. Maintenant :

Personne

Personne p = new Personne("Dupont", "Jean"); // OUI

p

=

new

Personne();

//

NON

"Jean"); // OUI p = new Personne(); // NON 12/33 ´ El´ements de base en Java

12/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

"Jean"); // OUI p = new Personne(); // NON 12/33 ´ El´ements de base en Java

Les constructeurs

On peut ´ecrire plusieurs constructeurs (qui sp´ecifient plusieurs mani`eres d’instancier la classe) :

public

class

Personne{

public

static

final

int

MAJORITE

=

18;

public

static

final

int

MAX_AGE

=

120;

private

String

nom;

 

private

String

prenom;

 

private

int

age

=

MAJORITE;

 

public

Personne(String

nom,

String

prenom){

}

this.nom

this.prenom

=

nom, String prenom){ } this.nom this.prenom = 13/33 nom; = prenom; ´ El´ements de base en

13/33

nom;

=

prenom;

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

prenom){ } this.nom this.prenom = 13/33 nom; = prenom; ´ El´ements de base en Java (suite

Les constructeurs

public

Personne(String

nom,

String

prenom,

int

age){

 

this.nom

=

nom;

 

this.prenom

=

prenom;

 

if

((age

>

0)

&&

(age

<

MAX_AGE))

 

this.age

=

age;

 

}

public

Personne()

{}

public

void

 

setNom(String

nom){

 

if

(this.nom

==

null)

this.nom

=

nom;

}

public

void

setPrenom(String

prenom){

if

(this.prenom

=

this.prenom

==

prenom;

null)

}

prenom){ if (this.prenom = this.prenom == prenom; null) } }//Personne 14/33 ´ El´ements de base en

}//Personne

14/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

= this.prenom == prenom; null) } }//Personne 14/33 ´ El´ements de base en Java (suite et

Pour instancier la classe Personne

Personne

//

Jean

dupont

Dupont

a

=

new

Personne("Dupont","Jean");

18

ans.

On

ne

peut

plus

changer

//

aucune

de

ses

caract´eristiques

 

Personne

 

durand

=

new

Personne("Durand","Andr´e",52);

//

Andr´e

Durand

a

52

ans.

On

ne

peut

plus

changer

//

aucune

de

ses

caract´eristiques.

 

Personne

 

qqun

=

new

Personne();

 

//

qqun

a

18

ans.

On

peut

maintenant

lui

donner

//

un

nom

et

un

pr´enom.

 

qqun.setNom("Dumoulin);

qqun.setPrenom("Nathalie");

//

qqun

s’appelle

Nathalie

Dumoulin

et

a

18

// qqun s’appelle Nathalie Dumoulin et a 18 qqun.setNom("Duchemin"); // n’est pas pris en

qqun.setNom("Duchemin");

//

n’est

pas

pris

en

compte.

15/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

ans.

// n’est pas pris en compte. 15/33 ´ El´ements de base en Java (suite et fin)

Les constructeurs

Les constructeurs font du contrˆole sur l’initialisation des attributs. On pr´ef`erera toujours ´eviter de dupliquer du code :

public

class

Personne

{

//

d´eclaration

d’attributs

public

Personne(String

nom,

String

prenom,

int

age){

 

this.nom

=

nom;

 

this.prenom

=

prenom;

 

if

((age

>

0)

&&

(age

<

MAX_AGE))

 

this.age

=

age;

}

public

Personne(String

nom,

String

prenom){

this(nom,prenom,MAJORITE);

}

}

nom, String prenom){ this(nom,prenom,MAJORITE); } } 16/33 ´ El´ements de base en Java (suite et fin)

16/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

String prenom){ this(nom,prenom,MAJORITE); } } 16/33 ´ El´ements de base en Java (suite et fin) Ann´ee

Les constructeurs

En g´en´eral, ce sont les constructeurs avec beaucoup d’arguments qui contiennent les instructions de contrˆole sur les attributs ; Donc, en g´en´eral, ce sont les constructeurs `a peu d’arguments qui appellent les constructeurs avec beaucoup d’arguments :

public

class

Personne

{

//

d´eclaration

d’attributs

 

public

Personne(String

nom,

String

prenom){

 
 

//

construire

une

personne

sans

donner

son

^age,

//

c’est

faire

le

choix

de

la

valeur

par

d´efaut

//

c’est

comme

construire

une

personne

de

18

ans

this(nom,prenom,MAJORITE);

}

}
}

17/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

de 18 ans this(nom,prenom,MAJORITE); } } 17/33 ´ El´ements de base en Java (suite et fin)

Les constructeurs

Mais ce n’est pas obligatoire ! On aurait pu ´ecrire :

public

class

Personne

{

//

d´eclaration

d’attributs

public

Personne(String

nom,

String

prenom){

this.nom

=

nom;

 

this.prenom

=

prenom;

}

public

Personne(String

nom,

String

prenom,

int

age){

}

}

this(nom,prenom);

if

age;

((age

>

0)

=

&&

this.age

(age

<

MAX_AGE))

((age > 0) = && this.age (age < MAX_AGE)) 18/33 ´ El´ements de base en Java

18/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

> 0) = && this.age (age < MAX_AGE)) 18/33 ´ El´ements de base en Java (suite

Les constructeurs

Contraintes sur l’emploi de this() (le constructeur) :

il ne peut ˆetre appel´e qu’`a l’int´erieur d’un constructeur ;

il doit ˆetre la premi`ere instruction du constructeur dans lequel il est appel´e

il peut ˆetre appel´e en cascade :

public

//

class

Personne

comme

d’habitude,

{

plus

:

public

static

final

char

HOMME

=

’M’;

public

static

final

char

FEMME

=

’F’;

private

char

genre

=

FEMME;

 
private char genre = FEMME;   19/33 ´ El´ements de base en Java (suite et fin)

19/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

private char genre = FEMME;   19/33 ´ El´ements de base en Java (suite et fin)

Les constructeurs

Personne(String

this.nom

this.prenom

=

}

Personne((String

nom,

String

=

nom;

prenom;

nom,

String

this(nom,prenom);

prenom){

prenom,

int

age){

if

((age

>

0)

&&

(age

<

MAX_AGE))

this.age

=

age;

}

Personne(String

nom,

String

prenom,

int

age,

this(nom,prenom,age);

if

genre;

((genre

==

HOMME)||(genre

=

this.genre

==

FEMME))

}

char

genre)

}

== HOMME)||(genre = this.genre == FEMME)) } char genre) } 20/33 ´ El´ements de base en

20/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

HOMME)||(genre = this.genre == FEMME)) } char genre) } 20/33 ´ El´ements de base en Java

Le m´ecanisme de cr´eation et d’initialisation d’un objet

1. les variables de classe sont cr´e´ees d`es les premier appel `a la classe (soit pour une instanciation – appel `a new, soit par un acc`es direct `a une variable de classe) :

1.1 initialis´ees au niveau de la d´eclaration ;

1.2 ou par un constructeur de statiques (plus rares) ;

2. les variables d’instance initialis´ees hors constructeur (`a la d´eclaration) ;

3. ex´ecution du constructeur ;

(`a la d´eclaration) ; 3. ex´ecution du constructeur ; 21/33 ´ El´ements de base en Java

21/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

la d´eclaration) ; 3. ex´ecution du constructeur ; 21/33 ´ El´ements de base en Java (suite

Exemple

public

class

FeuTricolore{

 

public

static

final

String[]

COULEURS

=

{"VERT","ORANGE","ROUGE"};

private

int

feu;

 

public

FeuTricolore(int

feu){

this.feu

=

feu%COULEURS.length;

}

public

FeuTricolore(){}

public

String

toString(){

return

COULEURS[feu];

}

public

void

tourne(){

}

feu

=

(feu+1)%COULEURS.length;

}//FeuTricolore

tourne(){ } feu = (feu+1)%COULEURS.length; }//FeuTricolore 22/33 ´ El´ements de base en Java (suite et fin)

22/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

} feu = (feu+1)%COULEURS.length; }//FeuTricolore 22/33 ´ El´ements de base en Java (suite et fin) Ann´ee

Exemple

public

static

void

main(String[]

System.out.println("Quelles

sont

args){

"

les

+

"couleurs

possibles?");

for(int

i++)

i=0;i<FeuTricolore.COULEURS.length;

System.out.println(FeuTricolore.COULEURS[i]);

FeuTricolore

System.out.println(ft);

for

ft

=

new

FeuTricolore(2);

(int

i=0;i<10;i++){

ft.tourne();

System.out.println(ft);

}

}//main

ft.tourne(); System.out.println(ft); } }//main 23/33 ´ El´ements de base en Java (suite et fin) Ann´ee

23/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

ft.tourne(); System.out.println(ft); } }//main 23/33 ´ El´ements de base en Java (suite et fin) Ann´ee 2008-09

Dur´ee de vie des variables et des objets

un objet existe tant qu’il existe une r´ef´erence vers lui ; une variable d’instance d’un type primitif existe tant qu’il existe une r´ef´erence vers l’objet auquel elle appartient.

public

Personne

dummy(){

String

dup

=

"Dupont";

Personne

dupont

=

new

Personne(dup,"Jean",

 

23,Personne.HOMME);

Personne

dupont2

=

new

Personne(dup,"Paul",

 

23,Personne.HOMME);

Personne

durand

=

new

Personne("Durand","Andr´ee",52);

dupont

=

durand;

return

durand;

}

dupont = durand; return durand; } // Personne ailleurs, beaucoup p = dummy(); 24/33 ´

//

Personne

ailleurs,

beaucoup

p

=

dummy();

24/33

´

El´ements de base en Java (suite et fin)

plus

loin

Ann´ee 2008-09

// Personne ailleurs, beaucoup p = dummy(); 24/33 ´ El´ements de base en Java (suite et

La surcharge de m´ethodes

C’est la possibilit´e d’avoir un mˆeme nom de m´ethode avec des signatures diff´erentes (et donc des comportements diff´erents).

C’est la nature des param`etres effectifs qui d´etermine la m´ethode ex´ecut´ee.

Le compilateur choisit la m´ethode `a utiliser par concordance de l’appel et de la signature.

Attention : deux m´ethodes ne peuvent pas ˆetre diff´erenci´ees uniquement par leur type de retour.

diff´erenci´ees uniquement par leur type de retour. 25/33 ´ El´ements de base en Java (suite et

25/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

diff´erenci´ees uniquement par leur type de retour. 25/33 ´ El´ements de base en Java (suite et

Variables de classe et variables d’instance

une variable de classe (static) est une variable qui n’est cr´e´ee qu’une seule fois par classe, et qui est partag´ee par toutes les instances de cette classe ;

une variable d’instance est une variable qui existe pour chaque instance d’une classe, et qui contient une valeur relative `a l’instance `a laquelle elle appartient.

valeur relative `a l’instance `a laquelle elle appartient. 26/33 ´ El´ements de base en Java (suite

26/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

relative `a l’instance `a laquelle elle appartient. 26/33 ´ El´ements de base en Java (suite et

Variables de classe et variables d’instance

une variable de classe (static) est une variable qui n’est cr´e´ee qu’une seule fois par classe, et qui est partag´ee par toutes les instances de cette classe ;

une variable d’instance est une variable qui existe pour chaque instance d’une classe, et qui contient une valeur relative `a l’instance `a laquelle elle appartient.

Exemples :

les constantes d’une classe

les variables qui contiennent une information relative `a l’ensemble des instances d’une classe (compteur .)

`a l’ensemble des instances d’une classe (compteur .) 26/33 ´ El´ements de base en Java (suite

26/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

l’ensemble des instances d’une classe (compteur .) 26/33 ´ El´ements de base en Java (suite et

M´ethodes d’instance, m´ethodes de classe

Une m´ethode qui ne manipule aucune variable d’instance (par exemple, une m´ethode qui effectue un calcul uniquement `a partir de ses param`etres) a vocation `a ˆetre d´eclar´ee static.

public

static

boolean

estValide(int

age){

return

(age

>

0

&&

age

<=

MAXAGE);

}

  ´
 

´

27/33

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

age <= MAXAGE); }   ´ 27/33 El´ements de base en Java (suite et fin) Ann´ee

Les modificateurs d’accessibilit´e

A l’int´erieur d’une classe, une variable ou une m´ethode peut ˆetre d´efinie avec un modificateur d’acc`es. Les diff´erents modificateurs d’accessibilit´e sont :

private l’´el´ement (variable ou m´ethode, d’instance ou de classe) est priv´e, il n’est accessible que depuis la classe elle-mˆeme (le code de la classe dans laquelle il est d´efini) ; pas de modificateur d’acc`es l’acc`es est dit package. protected l’acc`es est ´etendu (par rapport `a private au code des classes du mˆeme package et aux sous-classes de la classe. Nous reviendrons plus tard sur cette notion, li´ee `a l’h´eritage ; public accessible `a partir de tout code qui a acc`es `a la classe o`u l’´el´ement est d´efini.

qui a acc`es `a la classe o`u l’´el´ement est d´efini. 28/33 ´ El´ements de base en

28/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

acc`es `a la classe o`u l’´el´ement est d´efini. 28/33 ´ El´ements de base en Java (suite

Accesseurs

Ajoutons un nouvel accesseur dans Bibliotheque :

private Livre[] biblio;

public

Livre[]

getBiblio(){

return

biblio;}

et

Livre[] getBiblio(){ return biblio;} et 29/33 ´ El´ements de base en Java (suite et fin) Ann´ee

29/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

Livre[] getBiblio(){ return biblio;} et 29/33 ´ El´ements de base en Java (suite et fin) Ann´ee

Accesseurs

Ajoutons un nouvel accesseur dans Bibliotheque :

private Livre[] biblio;

public

Livre[]

getBiblio(){

return

biblio;}

et

//

ailleurs

Bibliotheque

laBu;

Livre[]

bib

=

laBu.getBiblio();

for(int

i=0;i<bib.length;i++)

bib[i]

ERREUR ! !

for(int i=0;i<bib.length;i++) bib[i] ERREUR ! ! = null; 29/33 ´ El´ements de base en Java (suite

=

null;

29/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

i=0;i<bib.length;i++) bib[i] ERREUR ! ! = null; 29/33 ´ El´ements de base en Java (suite et

Accesseurs

Conclusion : il faut se m´efier des accesseurs en lecture et conserver cach´ees les propri´et´es qui ne concernent pas les

cach´ees les propri´et´es qui ne concernent pas les 30/33 ´ El´ements de base en Java (suite

30/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

cach´ees les propri´et´es qui ne concernent pas les 30/33 ´ El´ements de base en Java (suite

Accesseurs

Conclusion : il faut se m´efier des accesseurs en lecture et conserver cach´ees les propri´et´es qui ne concernent pas les

Oui, mais alors

//class

public

return

}

Personne

String

getNom(){

nom;

est-ce dangereux ?

return } Personne String getNom(){ nom; est-ce dangereux ? 30/33 ´ El´ements de base en Java

30/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

} Personne String getNom(){ nom; est-ce dangereux ? 30/33 ´ El´ements de base en Java (suite

Accesseurs

Non !

class

Personne

//

Test

p

=

new

Personne("Dumoulin","Isabelle",20);

String

unNom

=

p.getNom();

unNom

=

unNom.toUpperCase();

//

unNom

contient

"DUMOULIN"

//

p.nom

contient

"Dumoulin"

Les instances de String sont non modifiables (comme les instances de classes enveloppes).

modifiables (comme les instances de classes enveloppes). 31/33 ´ El´ements de base en Java (suite et

31/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

(comme les instances de classes enveloppes). 31/33 ´ El´ements de base en Java (suite et fin)

This

Le mot-cl´e this d´esigne l’instance courante.

Il peut ˆetre utilis´e :

pour acc´eder `a un membre de l’instance =

pour passer sa r´ef´erence `a un autre objet

this.nom

nom ;

passer sa r´ef´erence `a un autre objet this.nom nom ; 32/33 ´ El´ements de base en

32/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

sa r´ef´erence `a un autre objet this.nom nom ; 32/33 ´ El´ements de base en Java

This

public

class

Livre

{

//

comme

d’habitude,

mais

on

ajoute

un

attribut

:

private

Bibliotheque

bib;

public

Livre(String

titre,

String

auteur,

 
 

String

editeur,Bibliotheque

bib){

this.bib

=

bib

//

idem

pour

les

autres

attributs

}

}

public

class

Bibliotheque

{

public

boolean

ajouteLivre(String

titre,

String

auteur,

 

String

editeur){

Livre

}

}
}

bouquin

=

new

Livre(titre,auteur,editeur,this);

33/33

´

El´ements de base en Java (suite et fin)

Ann´ee 2008-09

} } bouquin = new Livre(titre,auteur,editeur,this); 33/33 ´ El´ements de base en Java (suite et fin)