26
Lycée Diderot – BTS I.R.I.S Courriel : [email protected] , URL : http://www.diderot.org G.VALET Nov 2010 Version 1.0 LA PROGRAMMATION ORIENTÉE OBJET 1

LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Lycée Diderot – BTS I.R.I.S

Courriel : [email protected] , URL : http://www.diderot.org

G.VALET N o v 2010

Vers ion 1 . 0

LA PROGRAMMATION

ORIENTÉE OBJET

1

Page 2: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

La programmation

procédurale

Une suite d’instructions

s’exécutant les unes après les

autres

Avec des procédures ou des

fonctions (sous-programmes)

Cette approche a permis de

décomposer les

fonctionnalités d’un

programme en procédures

qui s’exécutent

séquentiellement

Exemple d’algorithme

2

COMMENT FAISAIT-ON AVANT ?

Programme

Instruction 1

Décision

Instruction 2

Instruction 12

Appel sous programme

Instruction 4

Fin

Début

Sous programme

Instruction 2

Instruction 1

Décision

Instruction 3

Instruction 21

Page 3: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Devant la complexité des applications, cette technique de programmation présentait quelques inconvénients

Cette méthode oblige le développeur à penser de manière algorithmique

L’approche algorithmique est en général proche du langage de la machine

Le développeur doit faire un effort supplémentaire pour structurer le programme

Finalement, le procédural est très éloigné de notre manière de penser

Le code est peu lisible

Et difficile à modifier, à maintenir

L’ajout de fonctionnalités dif ficile

Réutilisation du code incertaine

Attention au « Copier/Coller »

Le travail d’équipe est délicat

3

LES LIMITES DU TOUT PROCÉDURAL

Page 4: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Finalement, il est peut-être plus simple de s’inspirer du

monde réel

Le monde réel est composé d’objets, d’êtres vivants, de matière

Pourquoi ne pas programmer de manière plus réaliste ?

Les objets ont des propriétés

Un chat à 4 pattes, un serpent aucune

Les objets ont une utilité, une ou plusieurs fonctions

Une voiture permet de se déplacer

Un couteau peut couper

Alors, plutôt que de focaliser sur les procédures, intéressons -

nous d’avantage aux données

De cette analyse est née la programmation orientée objet

4

LE MONDE RÉEL ET LA PROGRAMMATION

Page 5: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Qu’est -ce qu’un objet ?

Un élément qui modélise toute entité, concrète ou abstraite, manipulée par le logiciel

Exemple : Une voiture avec 4 roues, un volant, un moteur, ….

Un élément qui réagit à certains messages qu’on lui envoie de l’extérieur

C’est son comportement, ce qu’il sait faire

Exemple : Avec cette voiture, je peux tourner, accélérer, freiner, …

Un élément qui ne réagit pas toujours de la même manière

Son comportement dépend de l’état dans lequel il se trouve

Exemple : Essayez de démarrer sans essence !!?

L’objet est l’élément central de la POO

Ces objets doivent être :

Modélisés

Utilisés

Détruits

5

L’OBJET AU CŒUR DU SYSTÈME

Page 6: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Une identité unique

Qui permet de le distinguer d’un autre

Exemple : La plaque d’immatriculation pour 2 voitures de même modèle

Un état interne

Donné par des valeurs de variables internes appelées attributs ou membres

Exemple : Un train roule à 150,7 km/h, transporte 200 personnes

Ces attributs/membres sont typés et portent un nom

Exemple : float vitesse; int nb_voyageurs;

Un comportement

Capacités d’actions données par des fonctions ou des sous programmes : Les méthodes ou opérations

Exemple : La méthode « freiner() » de l’objet « voiture »

Ces méthodes définissent le comportement de l’objet face à des stimulations extérieures

Exemple : Le freinage doit être moins brutal par temps de pluie (ABS)

6

LES 3 CARACTÉRISTIQUES DE L’OBJET

Page 7: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Un objet c’est :

Des données (Un état)

Des algorithmes (Des méthodes)

Exemple

90909090

reculer()

Freiner( )To

urn

er(

)

avancer()

float vitGfloat vitD

bool sensGbool sensD

7

A QUOI RESSEMBLE UN OBJET ?

Méthodes Elles représentent le

savoir faire de l’objet

Attributs Ils représentent

l’état de l’objet

Pour avancer, il faut

modifier vitG et vitD

Pour reculer, il faut modifier

sensG et sensD

Pour tourner, il faut que

𝑣𝑖𝑡𝐺 ≠ 𝑣𝑖𝑡𝐷

Pour freiner, il suffit de faire

tendre vitG et vitD vers 0

Page 8: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Dans l’exemple du robot précédent

Comment peut-on empêcher le blocage des roues ?

Empêcher que vitG=vitD=0 car freinage brutal

Comment empêcher l’inversion brutale du sens de rotation des moteurs ?

Eviter de casser la mécanique

Comment éviter un virage trop serré qui remettrait en cause la stabilité de la

trajectoire ?

Eviter un renversement

I l faudrait empêcher la modification directe de l’état du robot

Utiliser plutôt les méthodes dont les concepteurs auront prévu ces cas

d’utilisation extrêmes

Des règles d’accès à l’état d’un objet sont indispensables

pour éviter les mauvaises utilisations

Règles d’encapsulation

8

QUELQUES REMARQUES

Page 9: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Principe

Les attributs de l’objet sont privés

Inaccessibles directement depuis l’extérieur

Les méthodes sont publiques et forme une interface de manipulation de

l’objet

9

LES RÈGLES D’ENCAPSULATION

90909090

reculer()

Freiner( )

Tou

rner

( )

avancer()

float vitGfloat vitD

bool sensGbool sensD

L’accès direct est

interdit car les

attributs sont privés L’utilisation des

méthodes publiques

permet de modifier

l’état de l’objet

Page 10: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Les objets vont être capables d’interagir et de communiquer

entre eux

Par l’intermédiaire des méthodes publiques

Ils vont s’envoyer des messages par l’intermédiaire des méthodes publiques

Pour envoyer un message au robot :

On appelle la méthode (exemple : tourner() )

En spécifiant l’objet cible ( exemple : monRobot)

En précisant d’éventuels paramètres

10

LES OBJETS COMMUNIQUENT

90909090

reculer()

Freiner( )

Tou

rner

( )

avancer()

float vitGfloat vitD

bool sensGbool sensD

monRobot.tourner(12);

Le robot tournera à gauche si le

paramètre est positif et à droite s’il est

négatif (C’est un exemple, on peut

faire autrement)

Page 11: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

L’appel de méthode est effectué par un autre objet

11

LES OBJETS COMMUNIQUENT (2)

90909090 90909090

reculer()

Freiner( )

Tou

rner

( )

avancer()

float vitGfloat vitD

bool sensGbool sensD

monRobot.tourner(12);

Objet monRobot Objet unPilote

L’objet « unPilote » appelle la méthode

« tourner » de l’objet « monRobot ».

Le récepteur du message est

« monRobot ». L’objet « unPilote » est

l’envoyeur du message

Page 12: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Avant de créer des objets, i l faut définir un modèle

Des objets pourront être crées à partir de ce modèle

Ce modèle s’appelle une classe

Les objets fabriqués à partir du modèle sont des instances

12

LES CLASSES ET LES OBJETS

Classe Robot

90909090

reculer()

Freiner( )

Tou

rner

( )

avancer()

float vitGfloat vitD

bool sensGbool sensD

90909090

reculer()

Freiner( )

Tou

rner

( )

avancer()

float vitGfloat vitD

bool sensGbool sensD

90909090

reculer()

Freiner( )

Tou

rner

( )

avancer()

float vitGfloat vitD

bool sensGbool sensD

La classe Robot représente un

modèle d’objet

Objet robot1 est une

instance de Robot

Objet robot2 est une

instance de Robot

Instanciation

Code Mémoire

Page 13: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

En langage C++

La classe est définie dans un fichier d’entête : CRobot.h

13

CONSTITUTION D’UNE CLASSE (C++) 1/2

class CRobot {

private :

float vitG;

float vitD;

int sensG;

int sensD;

public :

void tourner(int dir);

void reculer(int vit);

void avancer(int vit);

void freiner(int force);

float getVitesseG();

float getVitesseD();

}

Les attributs sont privés et ne sont pas

accessibles depuis l’extérieur

Les méthodes sont publiques et

peuvent être appelées depuis l’extérieur

Certaines méthodes ne servent qu’à

accéder aux attributs. Ce sont les

accesseurs de données

Le nom de la classe

Page 14: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Ensuite, le fichier de définition de la classe : Crobot.cpp

14

CONSTITUTION D’UNE CLASSE (C++) 2/2

class CRobot {

void CRobot::tourner(int dir) {

// Corps de la méthode

}

float Crobot::getVitesseG() {

return vitG;

}

// Suite …

}

Le nom de la classe

La définition de la méthode :

Attention à l’opérateur ::

Le corps de la méthode

Cette méthode donne un

accès en lecture seule à

l’attribut « vitG ». Pas de

méthode setVitesse() pour

éviter les mauvais cas

d’utilisation La méthode renvoie l’attribut

demandé

Page 15: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

En langage Java, un seul fichier contient toute la classe :

robot.java

15

CONSTITUTION D’UNE CLASSE (JAVA)

public class Robot {

private float vitG;

private float vitD;

private int sensG;

private int sensD;

public void tourner(int dir) {

// Corps de la méthode

}

public float getVitesseG() {

return vitG;

}

}

Le nom de la classe

La déclaration des attributs

de la classe

Prototype et corps de la

méthode

Prototype et corps de la

méthode accesseur de

données

Page 16: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Pour représenter une classe, on utilise le langage de

modélisation UML (Unified Modeling Language) :

16

REPRÉSENTATION UML D’UNE CLASSE

+tourner(entrée dir : int) : void+freiner(entrée force : int) : void+avancer(entrée vit : float) : void+reculer(entrée vit : float) : void+getVitesseD() : float

-vitG : float-vitD : float-sensG : int-sensD : int

CRobot Le nom de la classe

Les attributs de la classe

sont privés (présence du -)

Les méthodes de la classe

sont publiques (présence

du +)

Méthode « tourner » ne renvoie rien

et prend un paramètre « dir » de

type entier. Ce paramètre ne sera

pas modifié dans le corps de la

méthode (Passage par valeur)

Méthode

« getVitesseD() »

renvoie un flottant

Page 17: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Le jeu des balles rebondissantes :

Objectif : Déplacer des balles dans un graphique

Contrainte : Le graphique a une taille limitée

Les balles doivent rebondir sur les parois

I l faut raisonner « objet »

La classe Ball :

17

EXEMPLE DE CONCEPTION OBJET 1/3

90909090

dessin

er()deplacer()

double xdouble y

Graphics dessinColor couleurdouble dx,dy

Permet de déplacer la balle

dans la zone de dessin

Permet de dessiner la balle dans

la zone de dessin

x : Position abscisse

x : Position ordonnée

dx : Déplacement d’abscisse

dy : Déplacement d’ordonnée

Dessin : Objet Zone de dessin

Couleur : Objet représentant la couleur

Page 18: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Une autre classe : La classe Panneau

18

EXEMPLE DE CONCEPTION OBJET 2/3

90909090

ajou

terBalle()

demarrer()

Balle[] mesBallesGraphics zoneDessin

stop

per()

Permet de démarrer

l’animation en déplaçant les

balles

Permet d’ajouter une balle

dans l’animation

mesBalles : C’est un tableau

contenant toutes les balles

zoneDessin : C’est la zone où

dessiner les balles

public void ajouterBalle (Balle uneBalle)

{ … }

Prototype possible de la méthode ajouterBalle()

Le paramètre de la méthode

est un objet (de type Balle)

Page 19: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Communication entre les objets

19

EXEMPLE DE CONCEPTION OBJET 3/3

90909090

ajou

terBalle()

demarrer()

Balle[] mesBallesGraphics zoneDessin

stop

per()

monPanneau 90909090

dessin

er()

deplacer()

double xdouble y

Graphics dessinColor couleurdouble dx,dy

90909090

dessin

er()

deplacer()

double xdouble y

Graphics dessinColor couleurdouble dx,dy

90909090

dessin

er()

deplacer()

double xdouble y

Graphics dessinColor couleurdouble dx,dy

mesBalles[0]

mesBalles[1]

mesBalles[2]

mesBalles[1].deplacer();

mesBalles[1].dessiner();

mesBalles[2].deplacer();

mesBalles[2].dessiner();

Instancié à partir de

la classe Panneau

Instancié à partir de

la classe Balle

mesBalles[0].deplacer();

mesBalles[0].dessiner();

Page 20: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

La création d’un objet est appelé « instanciation »

L’instanciation permet de réserver un espace mémoire

Les attributs de l’objet crée sont stockés dans cet espace mémoire

Comme toute variable les attributs doivent être initialisés

Comment créer un objet ?

En appelant une méthode spéciale : Le constructeur

Rôle du constructeur :

Initialiser les attributs de la classe

Préparer le travail de l’objet

Exemples :

Initier une connexion réseau

Ouvrir un fichier de travail

Réserver de la mémoire, …

20

LA CRÉATION D’UN OBJET

Page 21: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Définition de la

classe Java

21

LE CONSTRUCTEUR : EXEMPLE EN JAVA

public class Robot {

private float vitG;

private float vitD;

private int sensG;

private int sensD;

public Robot() {

vitG = 0.0F;

vitD = 0.0F;

sensD = 0;

sensG = 0;

}

public Robot(float vit1, float vit2) {

vitG = vit1;

vitD = vit2;

sensD = 0;

sensG = 0;

}// Suite de la classe

}

Constructeur de la

classe Robot ne

renvoie rien (Même

pas void)

Le constructeur

initialise chaque

attribut

2ème constructeur

prenant des

paramètres Initialisation de vitG

et vitD avec vit1 et

vit2

Page 22: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

22

LE CONSTRUCTEUR : EXEMPLE EN C++

class CRobot {

CRobot::CRobot() {

vitG=0.0;

vitD=0.0;

sensG=0;

sensDG=0;

}

CRobot::CRobot(float vit1,

float vit2) {

vitG=vit1;

vitD=vit2;

sensG=0;

sensDG=0;

}

// Suite …

}

class CRobot {

private :

float vitG;

float vitD;

int sensG;

int sensD;

public :

CRobot();

CRobot(float , float);

void tourner(int dir);

void reculer(int vit);

void avancer(int vit);

void freiner(int force);

float getVitesseG();

float getVitesseD();

}

Fichier d’entête Fichier de définition

de classe

Définition du

constructeur

2ème constructeur

Déclaration 2ème

constructeur

Déclaration du

constructeur

Page 23: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Le constructeur est une méthode qui a les caractéristiques

suivantes :

Il porte le même nom que la classe

Il ne renvoie rien

Il ne contient pas d’instruction return

Un constructeur peut prendre aussi des paramètres

Comme une méthode

La définition du constructeur n’est pas obligatoire

Dans ce cas, un constructeur par défaut est automatiquement appliqué

Cela signifie que, quoiqu’il arrive, un constructeur sera toujours appelé

Explicitement

Implicitement

23

CARACTÉRISTIQUES DU CONSTRUCTEUR

Page 24: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

La création de se déroule en 2 temps :

Création d’une référence à l’objet (Le nom de la variable objet)

Appel d’un constructeur

Cette création peut se faire dans le programme principal ou

depuis un autre objet

Rappel : Un objet peut-être composé d’un ou plusieurs autres objets

Les objets membres (composés) doivent être également initialisés

Possibilité de créer plusieurs constructeurs

Chaque constructeur aura des paramètres différents

Permet au développeur de proposer plusieurs manières de créer un objet

24

ET MAINTENANT, COMMENT CRÉER UN OBJET ?

Page 25: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

En C++

En Java

Utilisation de l’opérateur new obligatoire

L’opérateur new n’a pas la même signification qu’en C++

25

EXEMPLE D’APPEL AU CONSTRUCTEUR

CRobot unRobot;

CRobot unAutreRobot;

unRobot = Robot();

unAutreRobot = Robot(5.0, 7.0);

CRobot unRobot;

CRobot unAutreRobot;

unRobot = new Robot();

unAutreRobot = new Robot(12.4F, 5.3F);

Création d’une

nouvelle variable

Instanciation du

nouvel objet

Instanciation du avec

l’opérateur new

Page 26: LA PROGRAMMATION G - e-monsitemaurise-software.e-monsite.com/medias/files/cours-poo2-1.pdf · 2012-07-08 · Diderot L ycée Section technicien supérieur en Informatique et réseaux

Diderot Lycée Section technicien supérieur

en Informatique et réseaux

La P.O.O Les objets

IRIS

La Programmation orientée objet

Les classes Exemple de conception Constructeurs

Le constructeur est représenté comme une méthode normale

Son nom est le même que la classe

26

REPRÉSENTATION UML DU CONSTRUCTEUR

+Capteur()+Capteur(entrée intervalle : int)+mesurer()+getTemperature() : float+getHumidite() : float

-temp : float-humidite : float

Capteur

1er Constructeur

2ème constructeur

Méthodes normales