Vous êtes sur la page 1sur 23

Les approches de la programmation

Les concepts de base de la programmation orientée objet

Programmations Orientées Objet - JAVA


Chap 1 : Introduction & Concepts de base POO

Pr. Laila AMIR

Licence SIR
(Systèmes informatiques Répartis)

Année universitaire 2019/2020

Laila AMIR Programmations Orientées Objet 1 / 20


Les approches de la programmation
Les concepts de base de la programmation orientée objet

Plan

1 Les approches de la programmation


L’approche linéaire
L’approche procédurale
L’approche modulaire
L’approche objet

2 Les concepts de base de la programmation orientée objet


L’encapsulation
L’objet/La classe
L’héritage
Le polymorphisme

Laila AMIR Programmations Orientées Objet 2 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

Plan

1 Les approches de la programmation


L’approche linéaire
L’approche procédurale
L’approche modulaire
L’approche objet

2 Les concepts de base de la programmation orientée objet


L’encapsulation
L’objet/La classe
L’héritage
Le polymorphisme

Laila AMIR Programmations Orientées Objet 3 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche linéaire (non-structurée)

Une suite d’instructions s’exécutant de façon


linéaire..

Le lancement d’un programme débutait par


l’exécution de la première instruction du fichier
source et se poursuivait ligne après ligne
jusqu’à la dernière instruction du programme..

bloc d’instructions se répète

Laila AMIR Programmations Orientées Objet 4 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche linéaire

Avantages
Programmes simples

Limites
Présence des instructions de traitement récurrentes à plusieurs
emplacements dans le programme..
Les programmes de ce type ne se prêtent pas à l’écriture de grosses
applications, et ne favorisent absolument pas la réutilisation du
code.

Laila AMIR Programmations Orientées Objet 5 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche linéaire

Avantages
Programmes simples

Limites
Présence des instructions de traitement récurrentes à plusieurs
emplacements dans le programme..
Les programmes de ce type ne se prêtent pas à l’écriture de grosses
applications, et ne favorisent absolument pas la réutilisation du
code.

Laila AMIR Programmations Orientées Objet 5 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche procédurale

L’approche procédurale consiste à découper


un programme en une série de fonctions (ou
procédures). Ces fonctions contiennent un
certain nombre d’instructions qui ont pour
but de réaliser un traitement particulier.

Laila AMIR Programmations Orientées Objet 6 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche procédurale

Avantages
La possibilité de réutiliser le même code à différents emplacements
sans avoir à le retaper ;
Une façon plus simple de suivre l’évolution du programme
La création d’un code plus modulaire et structuré.

Limites
Cette approche n’est pas évolutive (une simple mise à jour à un point
donné peut impacter en cascade sur d’autres fonctions).
N’est pas adaptée au développement d’applications qui évoluent sans
cesse (des milliers de lignes de code).

Laila AMIR Programmations Orientées Objet 7 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche procédurale

Avantages
La possibilité de réutiliser le même code à différents emplacements
sans avoir à le retaper ;
Une façon plus simple de suivre l’évolution du programme
La création d’un code plus modulaire et structuré.

Limites
Cette approche n’est pas évolutive (une simple mise à jour à un point
donné peut impacter en cascade sur d’autres fonctions).
N’est pas adaptée au développement d’applications qui évoluent sans
cesse (des milliers de lignes de code).

Laila AMIR Programmations Orientées Objet 7 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche modulaire

Dès que l’on écrit un programme


de taille importante ou destiné à
être utilisé et maintenu par
d’autres personnes, il est
indispensable de fractionner le
programme en plusieurs fichiers
sources appelés modules, que l’on
compile séparément.
Chaque module définit des types de
données et des fonctions pour
traiter un aspect du programme

Laila AMIR Programmations Orientées Objet 8 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche modulaire
Avantages
Cette approche minimise l’interdépendance entre les différentes
parties du programme, afin de faciliter le changement de chacune
d’elles sans affecter le reste du programme et de pouvoir réutiliser
ces modules (les modules sont compilés séparément).
permet de répartir le développement d’une grosse application sur
plusieurs développeurs (tâches indépendentes).
La compilation est beaucoup plus rapide, car seuls les modules qui
ont été modifiés sont compilés.

Limites
Dissociation des données des fonctions qui les manipulent.
Manque des techniques pour la spécialisation des fonctions existantes.

Laila AMIR Programmations Orientées Objet 9 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche modulaire
Avantages
Cette approche minimise l’interdépendance entre les différentes
parties du programme, afin de faciliter le changement de chacune
d’elles sans affecter le reste du programme et de pouvoir réutiliser
ces modules (les modules sont compilés séparément).
permet de répartir le développement d’une grosse application sur
plusieurs développeurs (tâches indépendentes).
La compilation est beaucoup plus rapide, car seuls les modules qui
ont été modifiés sont compilés.

Limites
Dissociation des données des fonctions qui les manipulent.
Manque des techniques pour la spécialisation des fonctions existantes.

Laila AMIR Programmations Orientées Objet 9 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche orienté objet


Dans l’approche procédurale, modulaire (fonctionnaliste) les données
sont séparées des fonctions et procédures qui les utilisent.
Dans l’approche objet les données et les traitements concernant
ces données sont regroupés dans des entités appelées objets.

Laila AMIR Programmations Orientées Objet 10 / 20


L’approche linéaire
Les approches de la programmation L’approche procédurale
Les concepts de base de la programmation orientée objet L’approche modulaire
L’approche objet

L’approche orienté objet

La POO est utilisée aujourd’hui dans tous les domaines de


l’informatique : parallélisme, communication, bases de données,...

La POO vise le développement de ”modules réutilisables”.


Elle vise la construction de logiciel à partir d’une bibliothèque de
composants élémentaires.

La POO est un mode de conception de programmes caractérisé par :


une organisation en entité relativement autonome : les objets. Ces
derniers se communiquent au moyen de ”messages”.
un mécanisme de spécification et de génération d’objets au moyen
de modèle générique décrivant leur structure et leur comportement :les
classes.

Laila AMIR Programmations Orientées Objet 11 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

Plan

1 Les approches de la programmation


L’approche linéaire
L’approche procédurale
L’approche modulaire
L’approche objet

2 Les concepts de base de la programmation orientée objet


L’encapsulation
L’objet/La classe
L’héritage
Le polymorphisme

Laila AMIR Programmations Orientées Objet 12 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

L’encapsulation

C’est un principe (nommé aussi abstraction) qui permet de masquer


la complexité des objets à l’utilisateur.

Un utilisateur peut utiliser un objet sans savoir comment il


fonctionne (ex: un enfant sait se servir d’un téléviseur, malgré la
complexité de cet appareil).

Un objet possède une interface et une implémentation, l’interface est


visible et manipulable par l’utilisateur de l’objet et l’implémentation
(la façon dont l’objet est construit), qui n’est pas visible par
l’utilisateur (cachée).

Laila AMIR Programmations Orientées Objet 13 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

L’objet

Un objet est une entité, qui possède un état et un comportement.


Souvent, on définit un objet par une équation du style de :

Objet = identité
+ état (attributs)
+ comportement (méthodes membres)

Laila AMIR Programmations Orientées Objet 14 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

L’objet (suite)

L’identité : L’objet possède une identité, qui permet de le distinguer


des autres objets, indépendamment de son état.

Les attributs : Il s’agit des données caractérisant l’objet. Ce sont


des variables stockant des informations d’état de l’objet

Les méthodes (fonctions membres): Les méthodes d’un objet


caractérisent son comportement, c-à-d l’ensemble des actions qui
permettent :
de consulter, modifier, etc .. l’état de l’objet (les valeurs des
attributs),
de communiquer avec les autres objets par l’envoie de messages pour
réaliser un traitement..

Laila AMIR Programmations Orientées Objet 15 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

La classe

La classe est un mécanisme permettant de créer des objets ayant des


propriétés communes (attributs+méthodes).

Un objet est donc, une instance de la classe:

classe = instanciation
+ attributs (variables d’instances)
+ méthodes membres

Laila AMIR Programmations Orientées Objet 16 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

La classe (suite)

L’instanciation : représente la relation entre un objet et sa classe


d’appartenance qui a permis de le créer.

Les attributs :(appelés aussi variables d’instances): Ils ont un nom et


un type : soit un type de base (simple ou construit), soit une classe
(l’attribut référence un objet de la même ou une autre classe).

Les méthodes membres : Elles sont les opérations applicables à un


objet de la classe. Elles peuvent modifier tout ou en partie l’état d’un
objet et retourner des valeurs calculées à partir de cet état.

Laila AMIR Programmations Orientées Objet 17 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

L’héritage : notion & principe

L’héritage est un principe propre à la programmation orientée objet


Un mécanisme de transmission des propriétés d’une classe vers une
sous-classe, permettant de créer une nouvelle classe à partir d’une
classe existante.
Le nom ”héritage” (dérivation de classe) provient du fait que la classe
dérivée (nouvellement créée) contient les attributs et les méthodes de
sa superclasse (la classe dont elle dérive).
L’intérêt majeur de l’héritage est de pouvoir définir de nouveaux
attributs et de nouvelles méthodes pour la classe dérivée, qui
viennent s’ajouter à ceux et celles héritées. Par ce moyen on crée une
hiérarchie de classes de plus en plus spécialisées.

Laila AMIR Programmations Orientées Objet 18 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

Types

Héritage simple : une classe ne peut hériter qu’une seule superclasse

Héritage multiple : certains langages orientés objet, tels que le


C++, permettent de faire de l’héritage multiple, ce qui signifie qu’ils
offrent la possibilité de faire hériter une classe de deux ou
plusieurs superclasses. . Ainsi, cette technique permet de regrouper
au sein d’une seule et même classe les attributs et les méthodes de
plusieurs classes. JAVA ne permette pas l’heritage multiple pour
éviter les ambiguités.

Laila AMIR Programmations Orientées Objet 19 / 20


L’encapsulation
Les approches de la programmation L’objet/La classe
Les concepts de base de la programmation orientée objet L’héritage
Le polymorphisme

Le polymorphisme : notion & principe

En POO, une classe dérivée peut redéfinir une méthode héritée de sa


classe de base, tout en gardant le même nom. Cette possibilité est la
clé de ce que l’on nomme polymorphisme.

La possibilité de traiter de la même manière des objets de types


différents (classes dérivées ou de base).

Le polymorphisme représente la faculté d’une opération de s’appliquer


à des objets de classes différentes.

Laila AMIR Programmations Orientées Objet 20 / 20

Vous aimerez peut-être aussi