2. Plan
Introduction
POO Vs Autres paradigmes de programmation
Avantages de la POO
C’est quoi un objet?
Caractéristiques fondamentales des objets
Notion de classe
Encapsulation
Généralisation
Spécialisation
Bases du langage Java
2
3. Introduction
Contrairement à ce que l’on pourrait croire, le concept de la programmation
orientée objet n’est pas récent. C’est dans les années 60 que deux brillants
chercheurs norvégiens, Kristen Nygaard et Ole-Johan Dahl, ont développé les bases
de la programmation orientée objet en créant le langage Simula. Les notions de base
de la POO comme les classes, l’héritage, les méthodes virtuelles, etc. furent alors
créées dans ce langage pour parvenir à modéliser de façon fidèle des processus
industriels complexes.
3
4. POO Vs Autres paradigmes
de programmation
4
Il existe différents styles de programmation:
Fondé sur l'évaluation d'expressions qui ne dépendent que de la
valeur des arguments, et non de l'état de la mémoire
➢ On parle aussi de programmation fonctionnelle
➢ Proche des notations mathématiques, utilise beaucoup la récursivité
➢ Accepte des arguments, produit un résultat (pas d'« effet de bord »)
➢Ex: Lisp, Caml, ML, Haskel
Style applicatif
5. POO Vs Autres paradigmes de
programmation (suite)
Fondé sur l'exécution d'instructions qui modifient l'état de la
mémoire
➢ Utilise beaucoup les itérations et autres structures de contrôle
➢ Les structures de données sont fondamentales
➢Ex: Fortran, C, Pascal
Style impératif / procédural
5
6. POO Vs Autres paradigmes de
programmation (suite)
C'est un style de programmation où l'on ne considère que des
composants autonomes (les objets) disposant des ressources et
de moyens d'interactions entreeux.
Ces objets représentent des données qui sont modélisées par
des classes qui définissent des types
En plus de la manière dont sont structurés leurs objets, les
classes définissent les actions qu'ils peuvent prendre en charge
et la manière dont ces actions affectent leur état
ce sont des «messages» ou des «méthodes».
Simula, Smalltalk, C++, C#
6
Style objet
7. Avantages POO
Les caractéristiques de bases précédemment décrites peuvent être mises en oeuvre
dans un style impératif, mais des fonctionnalités propres au style objet favorisent .
la programmation modulaire
l'abstraction
la spécialisation
L'objectif de la POO étant de produire du code
facile à développer, à maintenir, à faire évoluer,
réutilisable, tout ou en partie, sans avoir besoin de le dupliquer
générique, et dont les spécialisations sont transparentes
7
8. Programmation modulaire
La conception par classes, représentant à la fois les données, les actions et les
responsabilités des objets de cette classe, permet de bien distinguer et séparer les concepts
Le fait de définir des « interfaces », au sens « moyens et modalités de communication avec
l'extérieur » permet de cacher les détails d'implémentation et d'éviter les dépendances trop
fortes
Tout ça favorise la réutilisabilité et la composition / délégation:l'assemblage des composants
en respectant leurs responsabilités
.
8
9. L’abstraction et la spécialisation
9
L'abstraction demande à séparer la définition (d'un type, d'une classe, d'une
méthode) de l'implémentation
Permet d'identifier un modèle commun à plusieurs composants
Ce modèle commun pourra être partagé via le mécanisme d'héritage
La spécialisation traite des cas particuliers, mais elle doit autant que possible rester
transparente
10. C’est quoi un objet?
10
un objet est une entité qui a son état et son comportement.
L’objet maintient son état dans une ou plusieurs variables.
Variable=donnée nommé par un identificateur
L’objet implémente son comportement par les méthodes
Méthode = fonction associée à un objet
Un objet est une entité informatique comprenant les variables et les méthodes