p.o.o. (programmation orientée objet) · méthodes et attributs statiques les propriétés...
TRANSCRIPT
![Page 1: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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
2019-2020
![Page 2: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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, polymorphisme et Abstraction
4. Interface, implémentation et Paquetage
5. Classes Courantes en Java
6. Gestion des Exceptions
7. Interfaces graphiques
![Page 3: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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érisant son état, et un ensemble d'opérations (les
méthodes) qui permettent son comportement.
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.
![Page 4: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/html5/thumbnails/4.jpg)
UABB-Tlemcen – Départ d’Informatique 4
La notion de classe
Classe = attributs + opérations
Objet = état (attributs) + comportement (méthodes)
![Page 5: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/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é.
class Point2D {
//…
public void finalize() {
System.out.println(" Objet Point2D détruit");
}
}
![Page 20: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/html5/thumbnails/20.jpg)
UABB-Tlemcen – Départ d’Informatique 20
Méthodes et attributs statiques
Toute propriété (attribut ou méthode) statique existe indépendamment
de toute instanciation d'objet.
class Demarrer {
static int a = 3;
static public void main(String args[]){
a += 5;
System.out.println("a^2 = " + carre(a));
}
int carre(int v){ return v*v; }
}
![Page 21: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/html5/thumbnails/21.jpg)
>java Demarrer
8
>
UABB-Tlemcen – Départ d’Informatique 21
Méthodes et attributs statiques
class Demarrer {
static int a = 6;
static public void main(String args[]){
Demarrer d1=new Demarrer(), d2=new Demarrer();
d1.a++; d2.a++;
System.out.println("a = " + Demarrer.a);
}
}
![Page 22: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/html5/thumbnails/22.jpg)
UABB-Tlemcen – Départ d’Informatique 22
Méthodes et attributs statiques
Les propriétés statiques d'une classe sont partagées par toutes les
instances de cette classe.
•Si une méthode est statique, et si elle doit utiliser des attributs ou des
méthodes de sa classe, il faut alors que ces propriétés soient elles aussi
déclarées static.
![Page 23: P.O.O. (Programmation Orientée Objet) · Méthodes et attributs statiques Les propriétés statiques d'une classe sont partagées par toutes les instances de cette classe. •Si](https://reader033.vdocuments.net/reader033/viewer/2022052720/5f082e867e708231d420bed2/html5/thumbnails/23.jpg)
A télécharger
Cours et TP en POO
pour L2 en Informatique
https://gl2site.wordpress.com