Академический Документы
Профессиональный Документы
Культура Документы
CHAPITRE 2
Classes et Objets
Mme BOUTOUMI
L2
2019- 2020
1. Cours précédent
2
2. Abstraction et Encapsulation
3
3. La notion de classe (1)
Nom
Point
-X:int Attributs
-Y:int
+initialiser ()
+déplacer() Méthodes
+afficher()
4
3. La notion de classe (2)
5
3. La notion de classe (3)
Supposons qu’un point est représenté par deux coordonnées entières:
abscisse et ordonnée.
Nous devons donc définir deux attributs dans la classe Point
X
Y Point
Supposons que nous souhaitons pouvoir:
Initialiser les coordonnées d’un point. -X:int
-Y:int
Déplacer ce point dans le plan.
Afficher les coordonnées de ce point. +initialiser ()
+déplacer()
+afficher()
Nous devons donc disposer de trois méthodes dans la
classe Point
initialiser
déplacer
afficher
6
3. La notion de classe (4)
Définition d’une classe Point (code en Java)
class Point
{
// instructions de définition des champs et des méthodes de la classe
}
7
3. La notion de classe (5)
Les Attributs
• Les attributs sont les données de la classe.
• Un attribut peut être:
• de type élémentaire: entier (byte, short, int, long), réel (float, double), booléen,
caractère.
• de type objet:
• Les déclarations des attributs peuvent se faire n’importe où à l’intérieur de la classe,
mais en général on les déclare au début ou à la fin de la classe.
-X:int - centre:Point
-Y:int - rayon:double
+initialiser () +déplacer()
+déplacer() +afficher()
+afficher()
8
3. La notion de classe (6)
Définition des attributs de la classe Point
(code en Java)
class Point {
private int x; // abscisse
private int y; // ordonnée
// définition des méthodes
}
Les méthodes(1)
11
3. La notion de classe (9)
Définition des méthodes de la classe Point
(code en Java)
Nom de la
Mode d’accès méthode
12
3. La notion de classe (10)
Le code complet en Java de l’exemple Point
Le nom de la classe
class Point {
Les attributs
private int x;
private int y;
15
4. Classe et objet (3)
class Point {
private int x;
int x=10 private int y;
int y=25
p2 public void initialiser
(int absc, int ord)
{x = absc;
y = ord;
}
int x=0 ...
int y=-3 }
16
5. L’instanciation (1)
17
5. L’instanciation (2)
18
5. L’instanciation (3)
Nom_de_la_classe identificateur;
19
5. L’instanciation (4)
Nom_de_la_classe identificateur;
identificateur = new Nom_de_la_classe();
Est équivalent à:
Nom_de_la_classe identificateur = new Nom_de_la_classe();
20
5. L’instanciation (5)
p1 y
Point P1;
21
6. L’utilisation des objets
Exemple: p1.initialiser(-3,2);
-3
p1 2
22
7. Les constructeurs (1)
23
7. Les constructeurs (2)
24
7. Les constructeurs (3)
}
}
inutile. On peut
la supprimer
25
7. Les constructeurs (4)
class Point {
private int x;
private int y;
Est il permis
public Point (int absc, int ord)
{x = absc;
d’écrire
y = ord;
}
Point a = new
public void deplacer (int dx, int dy)
{x = x + dx; point ()
y = y + dy; ?
}
non
public void afficher()
{
System.out.println("je suis un point de coordonnées:"+x+"
"+y);
}
}
26
7. Les constructeurs (5)
class Point {
private int x;
private int y;
Est il permis
public Point ()
{
d’écrire
}
public Point (int absc, int ord)
{x = absc; Point a = new
y = ord;
}
point ()
public void deplacer (int dx, int dy) ?
{x = x + dx;
y = y + dy; oui
}
public void afficher()
{
System.out.println("je suis un point de coordonnées:"+x+" "+y);
}
}
27
7. Le Destructeur
28
8. Le référent d’un objet (1)
-3
p1 2
Référence
(Handler) Objet
29
8. Le référent d’un objet (2)
Premier exemple
Point p1,p2;
p1 = new Point (-3,2);
p2 = new Point (10,-4);
-3
p1 2
10
p2 -4
30
8. Le référent d’un objet (3)
Exécutons l’affectation
p1 = p2;
-3
p1 2
Elle recopie
seulement
l’adresse de p2
dans le référent 10
de p1.
p2 -4
31
8. Le référent d’un objet (4)
p3 = p1; -3
p1
p1 = p2; 2
p2 = p3;
p2
10
p3 -4
32
8. Le référent d’un objet (5)
34
10. Eléments de conception de classes (1)
Les constructeurs
35
10. Eléments de conception de classes (2)
Pour une bonne conception de vos classes, il existe quelques règles qui
ne sont pas obligatoires mais qu’il est vivement conseillé de suivre.
1. Respecter le principe d’encapsulation en déclarant tous les champs
(attributs) privés.
37
11. Les modificateurs d’accès (2)
Champs de classe
X
Que faut il faire ? Y
nbpoints
déplacer()
afficher()
40
12. Champs et méthodes de classe
Champs de classes: Solution
class Point {
private int x;
private int y;
private static int nbpoints=0;
41
12. Champs et méthodes de classe
Méthodes de classe
43
12. Champs et méthodes de classe
Méthodes de classe: retour à l’exemple Point
public class TestPoint {
public static void main(String[] args) { nbpoints
System.out.println(Point.getNbPoints());
Point p1 = new Point(3,-2);
System.out.println(Point.getNbPoints()); 2
Point p2 = new Point(0,2);
System.out.println(Point.getNbPoints());
} 3
} p1
Console: -2
0
1
2 p2
0
2
44
Exercice: Quelles erreurs ont été commises dans ce code ?
public class A {
private static int p = 20 ;
private int q ;
47
13. Surcharge de méthode (2)
Règles générales
A la rencontre d’un appel de méthode, le compilateur cherche toutes
les méthodes acceptables et choisit la meilleure si elle existe.
Pour qu’une méthode soit acceptable il faut:
❖ Qu’elle dispose du nombre d’arguments voulus
❖ Que les types des arguments effectifs (valeur fournie lors de l'appel)
soit compatible avec les types des arguments muets
❖ Qu’elle soit accessible (une méthode privée ne sera pas acceptable
à l’extérieur de la classe)
49
13. Surcharge de méthode (4)
Exemple de surcharge d’une méthode
public class Prog {
}
}
50
13. Surcharge de méthode (5)
Exemple de surcharge d’un constructeur
public class Point {
private int x;
private int y;
53
Exercice Qu'affiche le programme suivant
54
Exemple création et utilisation d’un objet
Imaginons que nous souhaitons créer une classe Cercle permettant de
représenter des cercles définis par un centre (objet de type Point) et un
rayon de type flottant.
Les fonctionnalités de cette classe se limitent à :
L’affichage des caractéristiques d’un cercle (coordonnées du point du
centre et le rayon)
Le déplacement du centre
Point
Cercle
-X:int - centre:Point
-Y:int - rayon:double
+initialiser () +déplacer()
+déplacer() +afficher()
+afficher()
55
Exemple création et utilisation d’un objet
56
Références bibliographiques