Académique Documents
Professionnel Documents
Culture Documents
et le langage Java
Master BBSG 2
Laurent Tichit
Departement Informatique et Interactions, Faculte des Sciences de Luminy
Cours 2: Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 1/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 2/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 2/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 2/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 2/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 3/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 3/1
Lencapsulation
sePlacer(a,b)
distance(p)
x()
toString()
y()
L.
c Tichit, 2015-2016 POO et Java 3/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 4/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 4/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 4/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 4/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 5/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 5/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 5/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 5/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 6/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 6/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 6/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 6/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 6/1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 6/1
Lencapsulation
La classe Point
Fichier Point.java
class Point {
int x, y;
L.
c Tichit, 2015-2016 POO et Java 7/1
Lencapsulation
La classe Point
Fichier Point.java
class Point {
int x, y;
void sePlacer(int a, int b) {
validation de a et b
x = a;
y = b;
}
L.
c Tichit, 2015-2016 POO et Java 7/1
Lencapsulation
La classe Point
Fichier Point.java
class Point {
int x, y;
void sePlacer(int a, int b) {
validation de a et b
x = a;
y = b;
}
double module() {
return Math.sqrt(x * x + y * y);
}
L.
c Tichit, 2015-2016 POO et Java 7/1
Lencapsulation
La classe Point
Fichier Point.java
class Point {
int x, y;
void sePlacer(int a, int b) {
validation de a et b
x = a;
y = b;
}
double module() {
return Math.sqrt(x * x + y * y);
}
double distance(Point p) {
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
L.
c Tichit, 2015-2016 POO et Java 7/1
Lencapsulation
La classe Point
Fichier Point.java
class Point {
int x, y;
void sePlacer(int a, int b) {
validation de a et b
x = a;
y = b;
}
double module() {
return Math.sqrt(x * x + y * y);
}
double distance(Point p) {
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
public String toString() {
return "(" + x + ", " + y + ")";
}
...
}
L.
c Tichit, 2015-2016 POO et Java 7/1
Lencapsulation
La classe Point
Fichier Point.java
class Point {
int x, y;
void sePlacer(int a, int b) { sePlacer(a,b) distance(p)
validation de a et b
x = a; x
y = b; y
} module() toString()
double module() {
return Math.sqrt(x * x + y * y);
}
double distance(Point p) {
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
public String toString() {
return "(" + x + ", " + y + ")";
}
...
}
L.
c Tichit, 2015-2016 POO et Java 7/1
Lencapsulation
La classe Point
Fichier Point.java
class Point {
int x, y;
void sePlacer(int a, int b) { sePlacer(a,b) distance(p)
validation de a et b
x = a; x
y = b; y
} module() toString()
double module() {
return Math.sqrt(x * x + y * y);
}
double distance(Point p) {
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
public String toString() { Noter que le qualifieur static
return "(" + x + ", " + y + ")"; a disparu.
}
...
}
L.
c Tichit, 2015-2016 POO et Java 7/1
Lencapsulation
Fichier TestPoint.java
class TestPoint {
public static void main(String[] args) {
Point a, b;
L.
c Tichit, 2015-2016 POO et Java 8/1
Lencapsulation
Fichier TestPoint.java
class TestPoint {
public static void main(String[] args) {
Point a, b;
a = new Point();
b = new Point();
L.
c Tichit, 2015-2016 POO et Java 8/1
Lencapsulation
Fichier TestPoint.java
class TestPoint {
public static void main(String[] args) {
Point a, b;
a = new Point();
b = new Point();
a.sePlacer(10, 0);
b.sePlacer(13, 4);
L.
c Tichit, 2015-2016 POO et Java 8/1
Lencapsulation
Fichier TestPoint.java
class TestPoint {
public static void main(String[] args) {
Point a, b;
a = new Point();
b = new Point();
a.sePlacer(10, 0);
b.sePlacer(13, 4);
System.out.println(a.module());
System.out.println(a.distance(b));
System.out.println(a.toString());
System.out.println(b);
}
}
L.
c Tichit, 2015-2016 POO et Java 8/1
Lencapsulation
Fichier TestPoint.java
class TestPoint {
public static void main(String[] args) { a
Point a, b;
10
a = new Point(); 0
b = new Point();
a.sePlacer(10, 0);
b.sePlacer(13, 4); b
System.out.println(a.module()); 13
System.out.println(a.distance(b)); 4
System.out.println(a.toString());
System.out.println(b);
}
}
L.
c Tichit, 2015-2016 POO et Java 8/1
Lencapsulation
Fichier TestPoint.java
class TestPoint {
public static void main(String[] args) { a
Point a, b;
10
a = new Point(); 0
b = new Point();
a.sePlacer(10, 0);
b.sePlacer(13, 4); b
System.out.println(a.module()); 13
System.out.println(a.distance(b)); 4
System.out.println(a.toString());
System.out.println(b);
}
}
Ex
ecution :
10.0
5.0
(10, 0)
(13, 4)
L.
c Tichit, 2015-2016 POO et Java 8/1
Lencapsulation
class Point {
int x, y;
void sePlacer(int a, int b) {...}
double longueur() {...}
... la classe
}
... des objets
Point a = new Point();
Point b = new Point();
...
L.
c Tichit, 2015-2016 POO et Java 9/1
Lencapsulation
class Point {
int x, y;
void sePlacer(int a, int b) {...}
double longueur() {...}
... la classe
}
... des objets
Point a = new Point();
Point b = new Point();
...
L.
c Tichit, 2015-2016 POO et Java 9/1
Lencapsulation
class Point {
int x, y;
void sePlacer(int a, int b) {...}
double longueur() {...}
... la classe
}
... des objets
Point a = new Point();
Point b = new Point();
...
L.
c Tichit, 2015-2016 POO et Java 9/1
Lencapsulation
class Point {
int x, y;
void sePlacer(int a, int b) {...}
double longueur() {...}
... la classe
}
... des objets
Point a = new Point();
Point b = new Point();
...
L.
c Tichit, 2015-2016 POO et Java 9/1
Lencapsulation
class Point {
int x, y;
void sePlacer(int a, int b) {...}
double longueur() {...}
... la classe
}
... des objets
Point a = new Point();
Point b = new Point();
...
L.
c Tichit, 2015-2016 POO et Java 9/1
Lencapsulation
Pour acc
eder `
a un membre dinstance on doit mentionner linstance vis
ee :
unObjet.unMembre
L.
c Tichit, 2015-2016 POO et Java 10 / 1
Lencapsulation
Pour acc
eder `
a un membre dinstance on doit mentionner linstance vis
ee :
unObjet.unMembre
Appel de m
ethode : la version Java du concept envoi de message :
a.module() envoi du message module `a lobjet a
L.
c Tichit, 2015-2016 POO et Java 10 / 1
Lencapsulation
Pour acc
eder `
a un membre dinstance on doit mentionner linstance vis
ee :
unObjet.unMembre
Appel de m
ethode : la version Java du concept envoi de message :
a.module() envoi du message module `a lobjet a
`
a lint
erieur dune m
ethode, lobjet destinataire du message est implicite :
class Point {
int x, y;
...
double module() {
return Math.sqrt(x * x + y * y);
}
}
qui sont ces x et y qui apparaissent dans la m
ethode module ?
L.
c Tichit, 2015-2016 POO et Java 10 / 1
Lencapsulation
Pour acc
eder `
a un membre dinstance on doit mentionner linstance vis
ee :
unObjet.unMembre
Appel de m
ethode : la version Java du concept envoi de message :
a.module() envoi du message module `a lobjet a
`
a lint
erieur dune m
ethode, lobjet destinataire du message est implicite :
class Point {
int x, y;
...
double module() {
return Math.sqrt(x * x + y * y);
}
}
qui sont ces x et y qui apparaissent dans la m ethode module ?
r
eponse : les variables x et y de lobjet `
a travers lequel on aura appel
e la m
ethode
L.
c Tichit, 2015-2016 POO et Java 10 / 1
Lencapsulation
Pour acc
eder `
a un membre dinstance on doit mentionner linstance vis
ee :
unObjet.unMembre
Appel de m
ethode : la version Java du concept envoi de message :
a.module() envoi du message module `a lobjet a
`
a lint
erieur dune m
ethode, lobjet destinataire du message est implicite :
class Point {
int x, y;
...
double module() {
return Math.sqrt(x * x + y * y);
}
}
qui sont ces x et y qui apparaissent dans la m ethode module ?
r
eponse : les variables x et y de lobjet `
a travers lequel on aura appel
e la m
ethode
Si on a
Point a = new Point();
...
double r = a.module();
alors le corps de la fonction
equivaut `
a
return Math.sqrt(a.x * a.x + a.y * a.y);
L.
c Tichit, 2015-2016 POO et Java 10 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 11 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 11 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 11 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 11 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 11 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 11 / 1
Lencapsulation
Un exercice de style
Fichier Point.java
class Point {
int x, y;
...
double distance(Point p) { // m
ethode dinstance
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
static double distance(Point u, Point v) { // m
ethode de classe
int dx = u.x - v.x;
int dy = u.y - v.y;
return Math.sqrt(dx * dx + dy * dy);
}
}
L.
c Tichit, 2015-2016 POO et Java 12 / 1
Lencapsulation
Un exercice de style
Fichier Point.java
class Point {
int x, y;
...
double distance(Point p) { // m
ethode dinstance
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
static double distance(Point u, Point v) { // m
ethode de classe
int dx = u.x - v.x;
int dy = u.y - v.y;
return Math.sqrt(dx * dx + dy * dy);
}
}
L.
c Tichit, 2015-2016 POO et Java 12 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 13 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 13 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 13 / 1
Lencapsulation
Exercice de style 2. Ecrire la m
ethode de classe en utilisant la m
ethode dinstance :
double distance(Point p) {
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
static double distance(Point p, Point q) {
return p.distance(q);
}
L.
c Tichit, 2015-2016 POO et Java 14 / 1
Lencapsulation
Exercice de style 2. Ecrire la m
ethode de classe en utilisant la m
ethode dinstance :
double distance(Point p) {
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
static double distance(Point p, Point q) {
return p.distance(q);
}
Exercice de style 3. Ecrire la m
ethode dinstance en utilisant la m
ethode de classe :
L.
c Tichit, 2015-2016 POO et Java 14 / 1
Lencapsulation
Constructeurs
Constructeurs : m
ethodes ayant
m
eme nom que la classe
pas de type de retour ni dinstruction return expression
L.
c Tichit, 2015-2016 POO et Java 15 / 1
Lencapsulation
Constructeurs
Constructeurs : m
ethodes ayant
m
eme nom que la classe
pas de type de retour ni dinstruction return expression
leur r
ole : initialiser lespace qui vient d
etre allou
e pour lobjet
class Point {
int x, y;
Point(int a, int b) {
validation de a et b
x = a;
y = b;
}
...
}
L.
c Tichit, 2015-2016 POO et Java 15 / 1
Lencapsulation
Constructeurs
Constructeurs : m
ethodes ayant
m
eme nom que la classe
pas de type de retour ni dinstruction return expression
leur r
ole : initialiser lespace qui vient d
etre allou
e pour lobjet
class Point {
int x, y;
Point(int a, int b) {
validation de a et b
x = a;
y = b;
}
...
}
emploi (p
etant une variable de type Point) :
p = new Point(10, 20);
L.
c Tichit, 2015-2016 POO et Java 15 / 1
Lencapsulation
Constructeurs
Constructeurs : m
ethodes ayant
m
eme nom que la classe
pas de type de retour ni dinstruction return expression
leur r
ole : initialiser lespace qui vient d
etre allou
e pour lobjet
class Point {
int x, y;
Point(int a, int b) {
validation de a et b
x = a;
y = b;
}
...
}
emploi (p
etant une variable de type Point) :
p = new Point(10, 20);
semploie souvent associ
e`a une d
eclaration :
Point p = new Point(10, 20);
L.
c Tichit, 2015-2016 POO et Java 15 / 1
Lencapsulation
Fichier Point.java
class Point {
int x, y;
Point(int a, int b) {
validation de a et b
x = a;
y = b;
}
Point(int a) {
validation de a
x = a;
y = 0;
}
Point() {
x = 0;
y = 0;
}
...
}
L.
c Tichit, 2015-2016 POO et Java 16 / 1
Lencapsulation
Fichier Point.java
class Point {
Emplois respectifs :
int x, y;
Point(int a, int b) {
validation de a et b
Point p = new Point(u, v);
...
x = a;
Point q = new Point(w);
y = b;
...
}
Point r = new Point();
Point(int a) {
validation de a
x = a;
y = 0;
}
Point() {
x = 0;
y = 0;
}
...
}
L.
c Tichit, 2015-2016 POO et Java 16 / 1
Lencapsulation
Fichier Point.java
class Point {
Emplois respectifs :
int x, y;
Point(int a, int b) {
validation de a et b
Point p = new Point(u, v);
...
x = a;
Point q = new Point(w);
y = b;
...
}
Point r = new Point();
Point(int a) {
validation de a
x = a;
y = 0;
A retenir : la cr
eation dun objet
}
se fait toujours
Point() {
x = 0; par lop
erateur new
y = 0; associ
e`a lappel dun constructeur
}
...
}
L.
c Tichit, 2015-2016 POO et Java 16 / 1
Lencapsulation
Fichier Point.java
class Point { Emplois respectifs :
int x, y;
Point(int a, int b) { Point p = new Point(u, v);
validation de a et b ...
x = a; Point q = new Point(w);
y = b; ...
} Point r = new Point();
Point(int a) {
this(a, 0);
}
Point() { Attention :
this(0, 0); this(arguments); doit etre la
} premi`
ere instruction dun constructeur
...
}
L.
c Tichit, 2015-2016 POO et Java 17 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 18 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 18 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 18 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 18 / 1
Lencapsulation
Fichier Recipient.java
class Recipient {
float hauteur;
float largeur = 40;
float niveau;
...
Recipient(float niveau) {
this.niveau = niveau;
}
...
}
Emploi : rec
0 hauteur
Recipient rec 40 largeur
= new Recipient(25); 25 niveau
L.
c Tichit, 2015-2016 POO et Java 19 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 20 / 1
Lencapsulation
(a,b)
Les objets peuvent avoir (ont souvent) pour membres
dautres objets
Exemple : un objet Rectangle est d
efini par deux
objets Point
(c,d)
L.
c Tichit, 2015-2016 POO et Java 20 / 1
Lencapsulation
(a,b)
Les objets peuvent avoir (ont souvent) pour membres
dautres objets
Exemple : un objet Rectangle est d
efini par deux
objets Point
(c,d)
Bonne nouvelle : il ny a pas de probl`
eme particulier pour linitialisation :
Fichier Rectangle.java
class Rectangle {
Point coinNO, coinSE;
L.
c Tichit, 2015-2016 POO et Java 20 / 1
Lencapsulation
(a,b)
Les objets peuvent avoir (ont souvent) pour membres
dautres objets
Exemple : un objet Rectangle est d
efini par deux
objets Point
(c,d)
Bonne nouvelle : il ny a pas de probl`
eme particulier pour linitialisation :
Fichier Rectangle.java
class Rectangle {
Point coinNO, coinSE;
L.
c Tichit, 2015-2016 POO et Java 20 / 1
Lencapsulation
(`a propos...)
Mise en garde sur une erreur grave que le compilateur ne peut pas d
eceler
Fichier Rectangle.java
class Rectangle {
Point coinNO, coinSE;
L.
c Tichit, 2015-2016 POO et Java 21 / 1
Lencapsulation
(`a propos...)
Mise en garde sur une erreur grave que le compilateur ne peut pas d
eceler
Fichier Rectangle.java
class Rectangle {
Point coinNO, coinSE;
L.
c Tichit, 2015-2016 POO et Java 21 / 1
Lencapsulation
(`a propos...)
Mise en garde sur une erreur grave que le compilateur ne peut pas d
eceler
Fichier Rectangle.java
class Rectangle {
Point coinNO, coinSE;
L.
c Tichit, 2015-2016 POO et Java 21 / 1
Lencapsulation
(`a propos...)
Mise en garde sur une erreur grave que le compilateur ne peut pas d
eceler
Fichier Rectangle.java
class Rectangle {
Point coinNO, coinSE;
L.
c Tichit, 2015-2016 POO et Java 21 / 1
Lencapsulation
cr
e
ees lors de la cr
eation des objets (new), les variables dinstance peuvent
etre initialis
ees
dans les constructeurs
L.
c Tichit, 2015-2016 POO et Java 22 / 1
Lencapsulation
cr
e
ees lors de la cr
eation des objets (new), les variables dinstance peuvent
etre initialis
ees
dans les constructeurs
les variables de classe sont cr
e
ees au lancement du programme ; comment les initialiser ?
L.
c Tichit, 2015-2016 POO et Java 22 / 1
Lencapsulation
cr
e
ees lors de la cr
eation des objets (new), les variables dinstance peuvent
etre initialis
ees
dans les constructeurs
les variables de classe sont cr
e
ees au lancement du programme ; comment les initialiser ?
autant que possible, utiliser des affectations
L.
c Tichit, 2015-2016 POO et Java 22 / 1
Lencapsulation
cr
e
ees lors de la cr
eation des objets (new), les variables dinstance peuvent
etre initialis
ees
dans les constructeurs
les variables de classe sont cr
e
ees au lancement du programme ; comment les initialiser ?
autant que possible, utiliser des affectations
L.
c Tichit, 2015-2016 POO et Java 22 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 23 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 24 / 1
Lencapsulation
Fichier Point.java
class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 25 / 1
Lencapsulation
Fichier Point.java
class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 25 / 1
Lencapsulation
Fichier Point.java
class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 25 / 1
Lencapsulation
Fichier Point.java
class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 25 / 1
Lencapsulation
Fichier Point.java
class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 25 / 1
Lencapsulation
Fichier Point.java
class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 25 / 1
Lencapsulation
Fichier Point.java
class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 25 / 1
Lencapsulation
A propos daccesseurs
L.
c Tichit, 2015-2016 POO et Java 26 / 1
Lencapsulation
A propos daccesseurs
L.
c Tichit, 2015-2016 POO et Java 26 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 27 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 27 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 27 / 1
Lencapsulation
Encapsulation
Un gros b
en
efice : ind
ependance de limpl
ementation
Fichier Point.java
class Point {
private int r, t;
L.
c Tichit, 2015-2016 POO et Java 28 / 1
Lencapsulation
Encapsulation
Un gros b
en
efice : ind
ependance de limpl
ementation
Fichier Point.java
class Point {
private int r, t;
L.
c Tichit, 2015-2016 POO et Java 28 / 1
Lencapsulation
les classes avec visibilite par defaut (i.e. non qualifiees public) sont accessibles
uniquement depuis les classes de leur propre paquetage
package mesAffaires.outils;
class Machin {
...
}
L.
c Tichit, 2015-2016 POO et Java 29 / 1
Lencapsulation
les classes avec visibilite par defaut (i.e. non qualifiees public) sont accessibles
uniquement depuis les classes de leur propre paquetage
package mesAffaires.outils;
class Machin {
...
}
les classes qualifiees public sont accessibles depuis les classes de tous les
paquetages
package mesAffaires.outils;
public class Truc {
...
}
L.
c Tichit, 2015-2016 POO et Java 29 / 1
Lencapsulation
les classes avec visibilite par defaut (i.e. non qualifiees public) sont accessibles
uniquement depuis les classes de leur propre paquetage
package mesAffaires.outils;
class Machin {
...
}
les classes qualifiees public sont accessibles depuis les classes de tous les
paquetages
package mesAffaires.outils;
public class Truc {
...
}
L.
c Tichit, 2015-2016 POO et Java 29 / 1
Lencapsulation
Variables finales
Une variable (dinstance ou de classe) qualifiee final ne doit pas changer de valeur
variable dinstance : recoit une valeur `
a la construction et nen change plus
variable de classe : se comporte comme les constantes des autres langages
L.
c Tichit, 2015-2016 POO et Java 30 / 1
Lencapsulation
Variables finales
Une variable (dinstance ou de classe) qualifiee final ne doit pas changer de valeur
variable dinstance : recoit une valeur `
a la construction et nen change plus
variable de classe : se comporte comme les constantes des autres langages
Fichier Point.java
public class Point {
private int x, y;
L.
c Tichit, 2015-2016 POO et Java 30 / 1
Lencapsulation
Variables finales
Une variable (dinstance ou de classe) qualifiee final ne doit pas changer de valeur
variable dinstance : recoit une valeur `
a la construction et nen change plus
variable de classe : se comporte comme les constantes des autres langages
Fichier Point.java
public class Point {
private int x, y;
private static int nombreDePoints = 0;
L.
c Tichit, 2015-2016 POO et Java 30 / 1
Lencapsulation
Variables finales
Une variable (dinstance ou de classe) qualifiee final ne doit pas changer de valeur
variable dinstance : recoit une valeur `
a la construction et nen change plus
variable de classe : se comporte comme les constantes des autres langages
Fichier Point.java
public class Point {
private int x, y;
private static int nombreDePoints = 0;
private final int rang;
L.
c Tichit, 2015-2016 POO et Java 30 / 1
Lencapsulation
Variables finales
Une variable (dinstance ou de classe) qualifiee final ne doit pas changer de valeur
variable dinstance : recoit une valeur `
a la construction et nen change plus
variable de classe : se comporte comme les constantes des autres langages
Fichier Point.java
public class Point {
private int x, y;
private static int nombreDePoints = 0;
private final int rang;
private static final int MAX POINTS = 1000;
L.
c Tichit, 2015-2016 POO et Java 30 / 1
Lencapsulation
Variables finales
Une variable (dinstance ou de classe) qualifiee final ne doit pas changer de valeur
variable dinstance : recoit une valeur `
a la construction et nen change plus
variable de classe : se comporte comme les constantes des autres langages
Fichier Point.java
public class Point {
private int x, y;
private static int nombreDePoints = 0;
private final int rang;
private static final int MAX POINTS = 1000;
L.
c Tichit, 2015-2016 POO et Java 30 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 31 / 1
Lencapsulation
2 3
x y
L.
c Tichit, 2015-2016 POO et Java 31 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 32 / 1
Lencapsulation
2 3
L.
c Tichit, 2015-2016 POO et Java 32 / 1
Lencapsulation
2 3
2 3 2 3
L.
c Tichit, 2015-2016 POO et Java 32 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 33 / 1
Lencapsulation
2 3 2 3
L.
c Tichit, 2015-2016 POO et Java 33 / 1
Lencapsulation
2 3 2 3
la bonne comparaison
if ( p.equals(q) )
System.out.println("egaux");
...
L.
c Tichit, 2015-2016 POO et Java 33 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 34 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 34 / 1
Lencapsulation
L.
c Tichit, 2015-2016 POO et Java 34 / 1