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

Voir tous les documents en programmation

Programmation Orientée Objet

Ch 1: Introduction à la POO

Dr. Mouna Chebbah

Dr. Inès Thabet

Dr. Mouna Chebbah

L2 BC

Ecole Supérieur d’Économie Numérique

Semestre 1, 2020/2021

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

1/21

Préambule

§ Public:

Programmation procédurale

Programmation orientée objet

Exemple d’application

§ Ce cours est destiné aux étudiants de 2ème année Licence en

Business Computing

§ Objectif du cours:

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

illustrés avec le langage Java

§ Comprendre les origines et l’intérêt de la POO

§ Maˆıtriser les concepts orientés objet : classes, objets,

encapsulation, héritage, polymorphisme, classe abstraite et les

interfaces

§ Savoir utiliser cette nouvelle approche : définitions, syntaxe et

usage avec Java pour modéliser des problèmes

§ Traiter la gestion des exceptions afin de permettre une

production du code efficace

§ Objectif final: être capable de développer une application Java

en suivant une approche objet

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

2/21

Plan

Programmation procédurale

Programmation orientée objet

Exemple d’application

§ Chapitre 1: Introduction à la programmation orientée objet

§ Chapitre 2: Le langage Java

§ Chapitre 3: Les bases de la programmation orientée objet

§ Chapitre 4: L’héritage 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édurale

Programmation procédurale

Programmation orientée objet

Exemple d’application

§ Définir des variables (ensemble de données)

§ Diviser l’application en petit bloc de code

(procédures/fonctions)

§ Exécuter un programme se réduit à appeler ces

procédures/fonctions suivant l’ordre des instructions en leur

fournissant les données nécessaires à l’accomplissement de

leurs tâches

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

4/21

La programmation procédurale

Programmation procédurale

Programmation orientée objet

Exemple d’application

Figure: Structure d’un programme en C (langage procédural)

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

5/21

Exemple de code en C

Programmation procédurale

Programmation orientée objet

Exemple d’application

Données

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;

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édurale

Programmation orientée 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();}

}

Publicité

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

7/21

Limites de la programmation procédurale

Programmation procédurale

Programmation orientée objet

Exemple d’application

Au fur et à mesure que les programmes écrits avec une approche

procédurale grossissent, ils deviennent fragiles et mettent en

danger les données:

§ Pas de cadre bien défini pour organiser les fonctions

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

autre

§ La portée d’une modification est trop difficile à gérer

§ Redondance du code

§ Propagation des erreurs et déboggage difficile

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

8/21

De la programmation procédurale à la POO

Programmation procédurale

Programmation orientée objet

Exemple d’application

§ Programmation procédurale

§ Programmes: éléments actifs et importants comportant les

opérations séquentielles nécessaires pour résoudre un problème

§ Données: éléments passifs qui traversent l’arborescence de la

programmation procédurale en tant que flot d’informations

§ Programmation orientée objet

§ Fondée sur une seule catégorie d’éléments: “les objets” qui

communiquent entre eux grâce à l’envoi de messages (des

opérateurs appelés méthodes)

§ Par rapport à un langage impératif typé, un objet est

l’équivalent d’une variable (simple ou structurée) 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édurale

Programmation orientée objet

Exemple d’application

§ Pourquoi la POO?

§ Développement plus facile (et souvent plus rapide)

§ Fonctionnement plus stable

§ Maintenance plus simple

§ Augmentation de la qualité des logiciels (moins de bugs)

§ Une approche différente pour rapprocher le développement et

notre manière 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édurale à la POO

Programmation procédurale

Programmation orientée objet

Exemple d’application

§ Objet: élément tiré du

monde réel

§ Avec:

§ Des frontières précises,

§ Une identité (ou

référence),

§ Un ensemble d’attributs

(propriétés) décrivant son

état,

§ Un ensemble de méthodes

(opérations) définissant

son comportement.

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

11/21

De la programmation procédurale à la POO

Programmation procédurale

Programmation orientée objet

Exemple d’application

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

caractérisés par des propriétés: attributs et méthodes

communes à des objets.

=ą Objet : instance de classe

Figure: Représentation graphique

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

12/21

Exemple

Programmation procédurale

Programmation orientée objet

Exemple d’application

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

entreprise informatique. On y trouve des ingénieurs, des

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

femme de ménage, . . . ).

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

13/21

Exemple

Programmation procédurale

Programmation orientée objet

Exemple d’application

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

14/21

Programmation procédurale

vs Programmation OO

Programmation procédurale

Programmation orientée objet

Publicité

Exemple d’application

Programme

Prog Procédurale

programme

Le

principal est divisé

en petites parties

selon les fonctions

Les données Chaque

tion

des

différentes

fonc-

contient

données

Accès

Aucun

spécificateur

d’accès

utilisé

n’est

petit

fonction

Prog OO

programme

Le

principal est divisé

objet

en

en

du

problème

données

et

Les

fonctions de

les

in-

chaque objet

dividuel

agissent

comme une seule

unité

spécificateurs

Les

d’accès public, pri-

vate, et protected

sont utilisés

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

15/21

Programmation procédurale

vs Programmation OO

La communication

Contrôle des données

Importance

Prog Procédurale

Les fonctions com-

muniquent

avec

d’autres fonctions

en conservant les

règles habituelles

La

des

plupart

fonctions utilisent

données

des

globales

Les

fonctions ou

les algorithmes ont

plus d’importance

que

les données

dans le programme

Programmation procédurale

Programmation orientée objet

Exemple d’application

Prog OO

lié

Un objet est

à l’autre en util-

isant

le message

qui passe

Chaque

contrôle

propres données

objet

ses

données

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édurale

Programmation orientée objet

Exemple d’application

Publicité

§ On désire écrire un programme qui permet de dire si à un

étudiant a réussi son année.

§ Les étudiants de 1ere et 2eme année sont décrits par :

§ num, nom, adresse, moyenneS1 et moyenneS2

§ La moyenne calculée: pmoyenneS1 ` moyenneS2q{2

§ Les étudiants de 3ème année sont décrits par :

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

§ La moyenne est calculée : pmoyenneS1 ˆ 2 ` noteP F Eq{3

§ Le programme demande à saisir les informations des 30

étudiants et affiche s’ils ont réussi ou pas

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

17/21

Programmation procédurale

Programmation procédurale

Programmation orientée objet

Exemple d’application

§ Comment définir les données d’un étudiants?

struct etudiant{

int num;

char nom[30];

char adresse[30];

int classe;

float noteS1;

float noteS2;

float notePFE;

};

§ Comment stocker les données de tous les étudiants?

Définir un tableau de 10 étudiants avec des indices

correspondant aux rang des étudiants

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

18/21

Programmation procédurale

Programmation procédurale

Programmation orientée objet

Exemple d’application

§ Comment peut-on découper le programme pour le simplifier?

Définir une fonction qui calcule la moyenne d’un étudiant en

1ere ou 2eme année et une fonction pour les 3ème année

§ 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édurale

Programmation orientée 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édurale

Programmation orientée objet

Exemple d’application

§ Classe Etudiant:

§ Attributs: num, nom, adresse, noteS1

§ Méthodes: ajouter(), calculerMoyenne(), afficher()

§ Classe EtudiantL1L2:

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

§ Méthodes: ajouter(), calculerMoyenne(), afficher()

§ Classe EtudiantL3:

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

§ Méthodes: ajouter(), calculerMoyenne(), afficher()

Chapitre 1 - Introduction, M. Chebbah

Semestre 1, 2020

21/21