Chapitre 1
Chapitre 1
Chapitre 1
Ch 1: Introduction à la POO
Dr. Mouna Chebbah
Dr. Inès Thabet
Dr. Mouna Chebbah
L2 BC
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
3/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation procédurale Exemple d’application
4/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
La programmation procédurale 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
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
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
12/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Exemple Exemple d’application
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
17/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation procédurale Exemple d’application
18/21
Chapitre 1 - Introduction, M. Chebbah Semestre 1, 2020
Programmation procédurale
Programmation orientée objet
Programmation procédurale Exemple d’application
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