Chapitre 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 21

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

1/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Préambule Exemple d’application

§ Public:
§ 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
2/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Plan 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

3/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation procédurale 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

4/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
La programmation procédurale Exemple d’application

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


5/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Exemple de code en C Exemple d’application

Données
const int taille maximale = 100;
float vecteur[taille maximale ];
int haut = 0;
Fonctions
bool Pile vide() {return (haut == 0); }
bool Pile pleine() {return (haut == taille maximale); }
void Initialiser pile() {haut = 0;}
void Inserer pile(float valeur) {vecteur[haut] = valeur;
haut += 1; }
float Acces pile() {return vecteur[haut - 1];}
void Enlever pile() {haut = haut-1; vecteur[haut]=0;}

6/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Exemple de code en C 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();}
}

7/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Limites de la programmation procédurale 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

8/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
De la programmation procédurale à la POO 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

9/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation OO 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, . . .

10/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
De la programmation procédurale à la POO 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.

11/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
De la programmation procédurale à la POO 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

12/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Exemple 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, . . . ).

13/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Exemple Exemple d’application

14/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation procédurale Programmation orientée objet
vs Programmation OO Exemple d’application

Prog Procédurale Prog OO


Programme Le programme Le programme
principal est divisé principal est divisé
en petites parties en petit objet
selon les fonctions en fonction du
problème
Les données Chaque fonc- Les données et
tion contient les fonctions de
des données chaque objet in-
différentes dividuel agissent
comme une seule
unité
Accès Aucun Les spécificateurs
spécificateur d’accès public, pri-
d’accès n’est vate, et protected
utilisé sont utilisés
15/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation procédurale Programmation orientée objet
vs Programmation OO Exemple d’application

Prog Procédurale Prog OO


La communication Les fonctions com- Un objet est lié
muniquent avec à l’autre en util-
d’autres fonctions isant le message
en conservant les qui passe
règles habituelles
Contrôle des données La plupart des Chaque objet
fonctions utilisent contrôle ses
des données propres données
globales
Importance Les fonctions ou Les données
les algorithmes ont prennent plus
plus d’importance d’importance que
que les données les fonctions du
dans le programme programme
16/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Exemple d’application Exemple d’application

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


étudiant a réussi son année.
§ Les étudiants de 1ère et 2ème 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

17/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation procédurale 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

18/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation procédurale 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
1ère ou 2ème année et une fonction pour les 3ème année
§ Programme principal?

19/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programme principal Exemple d’application

#includeăstdio.hą
{ printf(”etudiant no : %d ” ,
#includeăconio.hą
i+1);
struct etudiant{
printf(”entrez le nom de cet
int num;
etudiant”);
char nom[30];
scanf(”%s”,&(*(p+i)).nom);
char adresse[30];
printf(”entrez l’adresse de cet
int classe;
etudiant”);
float noteS1;
scanf(”%s”,&(*(p+i)).adresse);
float noteS2;
printf(”entrez la classe de cet
float notePFE;
etudiant”);
};
scanf(”%d”,&(*(p+i)).classe);
void rem(struct etudiant
if((*(p+i)).classe ==
*p)
1)||((*(p+i)).classe == 2))
{ int i;
{printf(”entrez la moyenne de S1
for(i=0 ; iă10 ; i++)
de cet etudiant”);
{ printf(”etudiant no : %d
scanf(”%s”,&(*(p+i)).noteS1);
” , i+1); 20/21
Chapitre 1 - Introduction, M. Chebbah } Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation OO 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()

21/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020

Vous aimerez peut-être aussi