P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours...
Transcript of P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours...
![Page 1: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/1.jpg)
P.O.O. (Programmation
Orientée Objet)
CHOUITI Sidi Mohammed
Cours pour L2 en Informatique
Département d’Informatique
Université de Tlemcen
2017-2018
![Page 2: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/2.jpg)
UABB-Tlemcen – Départ d’Informatique 2
Plan du cours
1. Introduction à la Programmation Orientée Objet
2. Classes et objets
3. Héritage et polymorphisme
4. Interface et implémentation
5. Interface graphique et Applet
6. …
![Page 3: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/3.jpg)
UABB-Tlemcen – Départ d’Informatique 3
La notion d’objet
Un objet est une abstraction d’un élément du monde réel. Il possède un
ensemble d'attributs caractérisent l'état d'un objet, et d'un ensemble
d'opérations (les méthodes) qui permettent d'agir sur le comportement de
l'objet.
Un objet est l'instance d'une classe, et une classe, est un type de données
abstrait, caractérisé par des propriétés (ses attributs et ses méthodes)
communes à des objets, qui permet de créer ces objets possédant ces
propriétés.
Objet = état (attributs) + comportement (méthodes)
![Page 4: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/4.jpg)
UABB-Tlemcen – Départ d’Informatique 4
La notion de classe
Classe = instanciation + attributs + opérations
Classe est un type abstrait de données caractérisée par des
propriétés (attributs et opérations) communes à ses objets, et un
mécanisme permettant de créer des objets ayant ces propriétés.
![Page 5: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/5.jpg)
UABB-Tlemcen – Départ d’Informatique 5
Classes et objets
Classe – Objet - Constructeur
Cercle monCercle=new Cercle();
![Page 6: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/6.jpg)
UABB-Tlemcen – Départ d’Informatique 6
Classes et objets
Définition d’une classe en java
class NomClasse {
// définition des Attributs
// définition des Méthodes
}
![Page 7: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/7.jpg)
UABB-Tlemcen – Départ d’Informatique 7
Classes et objets
Les attributs de classe
class Cercle {
Point2D centre;
double rayon;
}
class Point2D {
double x,y;
}
Fichier "Cercle.java"
Fichier « Point2D.java"
![Page 8: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/8.jpg)
UABB-Tlemcen – Départ d’Informatique 8
Classes et objets
Les méthodes
class Cercle {
Point2D centre;
double rayon;
void deplacer (Vecteur2D vecteur) {
centre.x += vecteur.x;
centre.y += vecteur.y;
}
}
Fichier "Cercle.java"
![Page 9: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/9.jpg)
UABB-Tlemcen – Départ d’Informatique 9
Classes et objets
Les méthodes
class Cercle {
Point2D centre;
double rayon;
void deplacer (Vecteur2D vecteur) {
centre.x += vecteur.x;
centre.y += vecteur.y;
}
}
class Vecteur2D {
double x,y;
}
Fichier "Cercle.java"
Fichier "Vecteur2D.java"
![Page 10: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/10.jpg)
UABB-Tlemcen – Départ d’Informatique 10
Classes et objets
La surcharge de méthodes
class Cercle {
Point2D centre;
double rayon;
void deplacer (Vecteur2D vecteur) {
centre.x += vecteur.x;
centre.y += vecteur.y;
}
void deplacer (double x, double y) {
centre.x += x;
centre.y += y;
}
}
Fichier "Cercle.java"
![Page 11: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/11.jpg)
UABB-Tlemcen – Départ d’Informatique 11
Classes et objets
Les méthodes
class Point2D {
double x,y;
void afficher(){
System.out.print("[" + x + ", " + y + "]");
}
}
Fichier « Point2D.java"
![Page 12: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/12.jpg)
UABB-Tlemcen – Départ d’Informatique 12
Classes et objets
Appel de méthodes
class Cercle {
Point2D centre; double rayon;
void deplacer (Vecteur2D vecteur) { centre.x += vecteur.x; centre.y += vecteur.y; }
void deplacer (double x, double y) { centre.x += x; centre.y += y; }
void deplacerH(double x) { centre.x += x; }
void deplacerV(double y) { centre.y += y; }
void afficher(){
System.out.print("Objet Cercle :\n\tcentre : ");
centre.afficher();
System.out.println("\n\trayon : " + rayon);
}
}
Fichier "Cercle.java"
![Page 13: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/13.jpg)
UABB-Tlemcen – Départ d’Informatique 13
Instanciation d’objets
On instancie un objet en appliquant l'opérateur new sur
un constructeur de classe.
Classe – Objet - Constructeur
Cercle monCercle=new Cercle();
![Page 14: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/14.jpg)
UABB-Tlemcen – Départ d’Informatique 14
Classes et objets
Les constructeurs
class Cercle {
Point2D centre; double rayon;
Cercle(){
centre=new Point2D(); rayon=1;
}
Cercle(Point2D c,double r){
centre=c; rayon=r;
}
void deplacer (Vecteur2D vecteur) { centre.x += vecteur.x; centre.y += vecteur.y; }
void deplacer (double x, double y) { centre.x += x; centre.y += y; }
void deplacerH(double x) { centre.x += x; }
void deplacerV(double y) { centre.y += y; }
void afficher(){ System.out.print("Objet Cercle :\n\tcentre : "); centre.afficher();
System.out.println("\n\trayon : " + rayon); }
}
Fichier "Cercle.java"
![Page 15: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/15.jpg)
UABB-Tlemcen – Départ d’Informatique 15
Classes et objets
Les constructeurs
class Point2D {
double x,y;
Point2D(){
x=y=0;
}
Point2D(double i, double j){
x=i; y=j;
}
void afficher(){ System.out.print("[" + x + ", " + y + "]"); }
}
Fichier « Point2D.java"
![Page 16: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/16.jpg)
UABB-Tlemcen – Départ d’Informatique 16
Classes et objets
Les constructeurs
class Vecteur2D {
double x,y;
Vecteur2D(){
x=y=0;
}
Vecteur2D(double i, double j){
x=i; y=j;
}
}
Fichier « Vecterus2D.java"
![Page 17: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/17.jpg)
UABB-Tlemcen – Départ d’Informatique 17
Classes et objets
Classe principale
class Demarrer {
public static void main(String args[]){
Cercle c1=new Cercle();
Point2D c=new Point2D(5,4);
Cercle c2=new Cercle(c,3);
c1.afficher();
c2.afficher();
}
}
Fichier « Demarrer.java"
![Page 18: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/18.jpg)
UABB-Tlemcen – Départ d’Informatique 18
Quelques règles sur les constructeurs
•Si aucun constructeur n'est spécifié, dans la définition de la
classe, un constructeur par défaut vous est obligatoirement
fourni, celui-ci n'admettant aucun paramètre.
•Si vous en définissez au moins un, le constructeur par défaut
(qui n'admet pas de paramètres) n'est plus fourni. Si vous en
avez l'utilité il vous faudra alors le définir explicitement.
![Page 19: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/19.jpg)
UABB-Tlemcen – Départ d’Informatique 19
Destructeur
Le ramasse-miettes
Le ramasse-miettes (ou GC [Garbage Collector]) se charge de
repérer les objets inutiles et de libérer leurs espaces mémoires
Il fonctionne en permanence dans un thread de faible priorité.
![Page 20: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/20.jpg)
UABB-Tlemcen – Départ d’Informatique 20
Méthodes et attributs statiques
![Page 21: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/21.jpg)
UABB-Tlemcen – Départ d’Informatique 21
Méthodes et attributs statiques
![Page 22: P.O.O. (Programmation Orientée Objet) · UABB-Tlemcen – Départ d’Informatique 2 Plan du cours 1. Introduction à la Programmation Orientée Objet ... Définition d’une classe](https://reader033.fdocuments.net/reader033/viewer/2022051915/6006e3a1186e85793761d8af/html5/thumbnails/22.jpg)
A télécharger
Cours et TD en POO
pour L2 en Informatique
https://gl2site.wordpress.com