23
P.O.O. (Programmation Orientée Objet) CHOUITI Sidi Mohammed Cours pour L2 en Informatique Département d’Informatique Université de Tlemcen 2019-2020

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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>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

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

A télécharger

Cours et TP en POO

pour L2 en Informatique

https://gl2site.wordpress.com