Vous êtes sur la page 1sur 21

RAPPEL SUR LES CONCEPTS OBJETS

Dr E.I. Djebbar
Département de Génie des systèmes
Ecole Nationale Polytechnique d’Oran

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Objectifs de l’enseignement

• RAPPEL SUR LES CONCEPTS OBJETS : CLASSES, INSTANCES, ATTRIBUTS,


METHODES…

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Comparaison des deux topologies de
programmation

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Définition POO

• La POO est une méthode d’implémentation dans laquelle les programmes sont
organisés sous formes de collections coopératives d’objets, dont chacun
représente une instance d’une classe quelconque et dont toutes les classes sont
membres d’une hiérarchie de classes unis à travers des relations d’héritage.

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Programmation objet :
classe et instance
Classe
• Type d'objet (données + opérations pour les manipuler)
• Ex. : classe « point » dans le plan (c.-à-d. en dim 2)
• Données = deux coordonnées cartésiennes (x,y)
• Opérations = déplacer, calculer la norme (distance à (0,0)), ...
• En général : 1 fichier ~ 1 classe
Instance
• Exemplaire de la classe
• Ex. : un point en (3,5), un en (-2,7), un autre en (3,5) ...
Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Programmation objet :
champ et méthode
Champ
• Attribut de l'objet
• Ex. : coordonnée x, coordonnée y
• (on dit aussi « variable d'instance »)
Méthode
• Opération pour manipuler les données (~ fonction)
• Ex. : déplacer(dx,dy), norme()
Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple en Java : classe Point
class Point {
double x, y; // valeur 0 par défaut
double norme() { return Math.sqrt(x*x+y*y); }
void déplacer(double dx, double dy) {
x += dx; y += dy;
}
}
Point pt = new Point();
pt.déplacer(3.0,4.0);
double nm = pt.norme(); //→ 5.0

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple en Java : instances

class Point {
...
double distance(Point pt) {
double dx = x-pt.x; double dy = y-pt.y;
return Math.sqrt(dx*dx+dy*dy); }
}
Point pt1 = new Point().déplacer(7.0,3.0);
Point pt2 = new Point().déplacer(4.0,-1.0);
double dist = pt1.distance(pt2); //→ 5.0

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple 2

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Programmation objet :
constructeur

Constructeur
• sorte de méthode
• initialise les champs de l'objet lors de sa création
• créations/initialisations plus lisibles
• permet des initialisations toujours cohérentes

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple en Java : constructeur
class Point {
double x, y; // initialisés par défaut à 0
Point(double u, double v) {
x = u; y = v;
}
...
}
Point pt1 = new Point(7.0,3.0);
Point pt2 = new Point(4.0,-1.0);
double dist = pt1.distance(pt2); //→ 5.0
Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Programmation objet :
extension de classe et héritage
Extension de classe
• version spécialisée d'une classe existante
• héritage des champs et méthodes de cette classe
• champs et méthodes additionnels
• vocabulaire :
• sous-classe : la classe étendue
• super classe : la classe que l'on étend

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Héritage

• La notion d’héritage est une relation entre différentes classes permettant de


définir une nouvelle classe en se basant sur les classes existantes. On parle
d’héritage simple lorsqu’une classe fille ne possède qu’une classe mère. On parle
d’héritage multiple lorsqu’une classe fille possède plusieurs classes mères.

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Héritage

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple en Java : extension

class PointColoré extends Point {


Couleur couleur;
PointColoré(double u, double v, Couleur coul){
x = u; y = v; couleur = coul; }
boolean mêmeCouleur(PointColoré pt) {
return couleur.equals(pt.couleur); }
}
Couleur rouge = new Couleur(255,0,0);
PointColoré ptRouge = new PointColoré(3,4,rouge);
double nm = ptRouge.norme(); //→ 5.0
Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Programmation objet :
masquage de l'information

Masquage de l'information
• s'applique à : classes, champs et méthodes
• visibilité (scope)
• public : visible par toutes les classes
• private : visible seulement dans la classe
• protected : visible seulement par les classes étendues
• (package : visible seulement des classes du même package)

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
masquage de l'information (Encapsulation)

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple en Java : visibilité

public class Point {


private double x, y;
public void déplacer(double dx, double dy) {
x += dx; y += dy;
}
}
Point pt = new Point();
pt.x = 3.0; pt.y = 4.0; // Erreur à la compilation
pt.déplacer(3.0,4.0); // OK

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Polymorphisme

• Le terme polymorphisme issu du grec signifie la faculté de prendre plusieurs


formes. Une entité est polymorphe si à l’exécution elle peut se référer à des
instances de classe différentes.
• Le polymorphisme est un mécanisme qui permet à une sous classe de redéfinir
une méthode dont elle a hérité tout en gardant la même signature de la
méthode.

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information
Exemple

Programmation Objet Avancée (POA)

ENP d’Oran -Informatique-


Ingénierie et Management des Systèmes d’Information

Vous aimerez peut-être aussi