Introduction à la Programmation Orientée Objet

Page 1 sur 21Lecteur de document UniversityLib

Introduction à la Programmation Orientée Objet

Programming, Object-Oriented Programming, Java · course

Browse all programmation documents

Programmation Orient´ee Objet

Ch 1: Introduction `a la POO

Dr. Mouna Chebbah

Dr. In`es Thabet

Dr. Mouna Chebbah

L2 BC

Ecole Sup´erieur d’´Economie Num´erique

Semestre 1, 2020/2021

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

1/21

Pr´eambule

§ Public:

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Ce cours est destin´e aux ´etudiants de 2`eme ann´ee Licence en

Business Computing

§ Objectif du cours:

§ Introduction aux paradigmes de la POO: les notions de base

illustr´es avec le langage Java

§ Comprendre les origines et l’int´erˆet de la POO

§ Maˆıtriser les concepts orient´es objet : classes, objets,

encapsulation, h´eritage, polymorphisme, classe abstraite et les

interfaces

§ Savoir utiliser cette nouvelle approche : d´efinitions, syntaxe et

usage avec Java pour mod´eliser des probl`emes

§ Traiter la gestion des exceptions afin de permettre une

production du code efficace

§ Objectif final: ˆetre capable de d´evelopper une application Java

en suivant une approche objet

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

2/21

Plan

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Chapitre 1: Introduction `a la programmation orient´ee objet

§ Chapitre 2: Le langage Java

§ Chapitre 3: Les bases de la programmation orient´ee objet

§ Chapitre 4: L’h´eritage et le polymorphisme

§ Chapitre 5: Classe abstraite et Interface

§ Chapitre 6: La gestion des exceptions

§ Chapitre 7: Les collections

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

3/21

Programmation proc´edurale

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ D´efinir des variables (ensemble de donn´ees)

§ Diviser l’application en petit bloc de code

(proc´edures/fonctions)

§ Ex´ecuter un programme se r´eduit `a appeler ces

proc´edures/fonctions suivant l’ordre des instructions en leur

fournissant les donn´ees n´ecessaires `a l’accomplissement de

leurs tˆaches

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

4/21

La programmation proc´edurale

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

Figure: Structure d’un programme en C (langage proc´edural)

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

5/21

Exemple de code en C

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

Donn´ees

const int taille maximale = 100;

float vecteur[taille maximale ];

int haut = 0;

Fonctions

bool Pile vide()

bool Pile pleine()

void Initialiser pile() {haut = 0;}

void Inserer pile(float valeur)

{return (haut == 0); }

{return (haut == taille maximale); }

{vecteur[haut] = valeur;

Advertisement

haut += 1; }

float Acces pile()

void Enlever pile()

{return vecteur[haut - 1];}

{haut = haut-1; vecteur[haut]=0;}

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

6/21

Exemple de code en C

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

Utilisation

void main()

{

Initialiser pile();

Inserer pile(2.3f);

Inserer pile(3.4f);

Inserer pile(6.3f);

while (!Pile vide()) { Enlever pile();}

}

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

7/21

Limites de la programmation proc´edurale

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

Au fur et `a mesure que les programmes ´ecrits avec une approche

proc´edurale grossissent, ils deviennent fragiles et mettent en

danger les donn´ees:

§ Pas de cadre bien d´efini pour organiser les fonctions

§ La modification d’une fonction entraine la modification d’une

autre

§ La port´ee d’une modification est trop difficile `a g´erer

§ Redondance du code

§ Propagation des erreurs et d´eboggage difficile

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

8/21

De la programmation proc´edurale `a la POO

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Programmation proc´edurale

§ Programmes: ´el´ements actifs et importants comportant les

op´erations s´equentielles n´ecessaires pour r´esoudre un probl`eme

§ Donn´ees: ´el´ements passifs qui traversent l’arborescence de la

programmation proc´edurale en tant que flot d’informations

§ Programmation orient´ee objet

§ Fond´ee sur une seule cat´egorie d’´el´ements: “les objets” qui

communiquent entre eux grˆace `a l’envoi de messages (des

op´erateurs appel´es m´ethodes)

§ Par rapport `a un langage imp´eratif typ´e, un objet est

l’´equivalent d’une variable (simple ou structur´ee) et la classe

dont il est l’instance correspond au type de la variable

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

9/21

Programmation OO

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Pourquoi la POO?

§ D´eveloppement plus facile (et souvent plus rapide)

§ Fonctionnement plus stable

§ Maintenance plus simple

§ Augmentation de la qualit´e des logiciels (moins de bugs)

§ Une approche diff´erente pour rapprocher le d´eveloppement et

notre mani`ere de concevoir le monde

§ La base pour des langage comme C++, c#, Java, Pyhthon,

PHP, . . .

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

10/21

De la programmation proc´edurale `a la POO

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Objet: ´el´ement tir´e du

monde r´eel

§ Avec:

§ Des fronti`eres pr´ecises,

§ Une identit´e (ou

r´ef´erence),

§ Un ensemble d’attributs

Advertisement

(propri´et´es) d´ecrivant son

´etat,

§ Un ensemble de m´ethodes

(op´erations) d´efinissant

son comportement.

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

11/21

De la programmation proc´edurale `a la POO

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Classe: description d’un ensemble d’objets communs

caract´eris´es par des propri´et´es: attributs et m´ethodes

communes `a des objets.

=ą Objet : instance de classe

Figure: Repr´esentation graphique

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

12/21

Exemple

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

On veut faire un programme de gestion du personnel d’une

entreprise informatique. On y trouve des ing´enieurs, des

techniciens, des directeurs et des ouvriers d’entretiens (concierge,

femme de m´enage, . . . ).

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

13/21

Exemple

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

14/21

Programmation proc´edurale

vs Programmation OO

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

Programme

Prog Proc´edurale

programme

Le

principal est divis´e

en petites parties

selon les fonctions

Les donn´ees Chaque

tion

des

diff´erentes

fonc-

contient

donn´ees

Acc`es

Aucun

sp´ecificateur

d’acc`es

utilis´e

n’est

petit

fonction

Prog OO

programme

Le

principal est divis´e

objet

en

en

du

probl`eme

donn´ees

et

Les

fonctions de

les

in-

chaque objet

dividuel

agissent

comme une seule

unit´e

sp´ecificateurs

Advertisement

Les

d’acc`es public, pri-

vate, et protected

sont utilis´es

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

15/21

Programmation proc´edurale

vs Programmation OO

La communication

Contrˆole des donn´ees

Importance

Prog Proc´edurale

Les fonctions com-

muniquent

avec

d’autres fonctions

en conservant les

r`egles habituelles

La

des

plupart

fonctions utilisent

donn´ees

des

globales

Les

fonctions ou

les algorithmes ont

plus d’importance

que

les donn´ees

dans le programme

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

Prog OO

li´e

Un objet est

`a l’autre en util-

isant

le message

qui passe

Chaque

contrˆole

propres donn´ees

objet

ses

donn´ees

Les

prennent

plus

d’importance que

les

fonctions du

programme

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

16/21

Exemple d’application

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ On d´esire ´ecrire un programme qui permet de dire si `a un

´etudiant a r´eussi son ann´ee.

§ Les ´etudiants de 1ere et 2eme ann´ee sont d´ecrits par :

§ num, nom, adresse, moyenneS1 et moyenneS2

§ La moyenne calcul´ee: pmoyenneS1 ` moyenneS2q{2

§ Les ´etudiants de 3`eme ann´ee sont d´ecrits par :

§ num, nom, adresse, moyenneS1, noteP F E

§ La moyenne est calcul´ee : pmoyenneS1 ˆ 2 ` noteP F Eq{3

§ Le programme demande `a saisir les informations des 30

´etudiants et affiche s’ils ont r´eussi ou pas

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

17/21

Programmation proc´edurale

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Comment d´efinir les donn´ees d’un ´etudiants?

struct etudiant{

int num;

char nom[30];

char adresse[30];

int classe;

Advertisement

float noteS1;

float noteS2;

float notePFE;

};

§ Comment stocker les donn´ees de tous les ´etudiants?

D´efinir un tableau de 10 ´etudiants avec des indices

correspondant aux rang des ´etudiants

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

18/21

Programmation proc´edurale

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Comment peut-on d´ecouper le programme pour le simplifier?

D´efinir une fonction qui calcule la moyenne d’un ´etudiant en

1ere ou 2eme ann´ee et une fonction pour les 3`eme ann´ee

§ Programme principal?

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

19/21

Programme principal

#includeăstdio.hą

#includeăconio.hą

struct etudiant{

int num;

char nom[30];

char adresse[30];

int classe;

float noteS1;

float noteS2;

float notePFE;

};

void rem(struct etudiant

*p)

{ int i;

for(i=0 ; iă10 ; i++)

{ printf(”etudiant no : %d

” , i+1);

Chapitre 1 - Introduction, M. Chebbah

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

{ printf(”etudiant no : %d ” ,

cet

le nom de

l’adresse de cet

i+1);

printf(”entrez

etudiant”);

scanf(”%s”,&(*(p+i)).nom);

printf(”entrez

etudiant”);

scanf(”%s”,&(*(p+i)).adresse);

printf(”entrez la classe de cet

etudiant”);

scanf(”%d”,&(*(p+i)).classe);

if((*(p+i)).classe

1)||((*(p+i)).classe == 2))

{printf(”entrez la moyenne de S1

de cet etudiant”);

scanf(”%s”,&(*(p+i)).noteS1);

}

==

Semestre 1, 2020

20/21

Programmation OO

Programmation proc´edurale

Programmation orient´ee objet

Exemple d’application

§ Classe Etudiant:

§ Attributs: num, nom, adresse, noteS1

§ M´ethodes: ajouter(), calculerMoyenne(), afficher()

§ Classe EtudiantL1L2:

§ Attributs: num, nom, adresse, noteS1, noteS2

§ M´ethodes: ajouter(), calculerMoyenne(), afficher()

§ Classe EtudiantL3:

§ Attributs: num, nom, adresse, noteS1, noteP F E

§ M´ethodes: ajouter(), calculerMoyenne(), afficher()

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

21/21