Vous êtes sur la page 1sur 20

CHAPITRE 1: LES

CONCEPTS DE BASE
De la programmation classique vers la
programmation orientée objet 1
La programmation classique telle que étudiée au travers des langages
C, Pascal… définie un programme comme étant:
 un ensemble de données sur lesquelles agissent des procédures et
des fonctions.
Les données constituent la partie passive du programme. Les
procédures et les fonctions constituent la partie active;

 Programmer dans ce cas revenait à:


définir un certain nombre de variables (structures, tableaux…)
écrire des procédures pour les manipuler sans associer explicitement
les unes aux autres.
De la programmation classique vers la
programmation orientée objet 2
Exécuter un programme se réduit alors à appeler ces procédures dans
un ordre décrit par le séquençage des instructions et en leur fournissant
les données nécessaires à l’accomplissement de leurs tâches.
De la programmation classique vers la
programmation orientée objet 2
Dans cette approche données et procédure sont traitées indépendamment
les unes des autres sans tenir compte des relations étroites qui les unissent.
Les questions qu’on peut poser dans ce cas:
1. Cette séparation (données, procédures) est elle utile?
2. Pourquoi privilégier les procédures sur les données (Que veut-on faire?)?
3. Pourquoi ne pas considérer que les programmes sont avant tout des
ensembles objets informatiques caractérisé par les opérations qu’ils
connaissent?
Les langages objets sont nés pour répondre à ces questions. Ils sont
fondés sur la connaissance d’une seule catégorie d’entités informatiques: les
objets.
Un objet incorpore des aspects statiques et dynamiques au sein d’une
même notion.
De la programmation classique vers la
programmation orientée objet 2

 Un programme est constitué d’un ensemble d’objets chacun disposant


d’une partie procédures et d’une partie données. Les objets interagissent par
envoie de messages.
Un objet peut recevoir un msg qui déclenche:
Une fonction qui modifie son état ou
Une fonction qui envoie un msg à un autre objet
Programmation procédurale VS POO
La crise du logiciel
 Dans les années 1970, la programmation se développe et de
nouvelles technologies logicielles apparaissent : mode multi-utilisateurs,
interfaces graphiques, programmation concurrente, …
La taille des programmes augmente également : 10 000 lignes de code
pour un logiciel de bonne taille dans les années 1970, 50000 dans les
années 1980 (et des millions de nos jours).
La crise du logiciel des années 70 est provoquée par :
1. l'impossibilité de maitriser la sureté des logiciels (pannes
nombreuses)
2. l'inflation des délais de développement
De bonnes techniques de développement logiciel deviennent nécessaires.
Historique
 La programmation objet est inventée dans les années 1970 comme une
extension de la programmation procédurale.
L'idée est de concevoir les programmes non plus comme des lignes de
codes qui s'exécutent séquentiellement, mais comme des objets qui
dialoguent..
 Début en Norvège à la fin des années 60 :Simula 64 est le premier
langage à utiliser ce paradigme mais de façon limitée.
 Smalltalk, développé à partir de 1971 par Alan Kay et publié en
1980, est le premier vrai langage objet.
D'autres suivront : Eiffel en 1986, Python en 1991, ...
Des versions objets de langages existants seront développées : C++
pour le C, ADA95 pour le ADA, Object Pascal pour le Pascal ..
Historique
 Année 1990: apparition de java et standardisation
de C++
Première version de Java en 1995, développée
principalement par James Gosling.

La programmation objet devient à la fin des années


90 le paradigme dominant en programmation.
Concepts de bases

Une classe est une description abstraite d’un ensemble d’objets ”de même nature”.

• n’a pas d'état, ni d’identite (vue statique du système)


• c’est un ”modèle” pour la création de nouveaux objets
• contrat garantissant les compétences minimales d’un objet
• des éléments concrets (ex. livre, client)
• des éléments abstraits (ex. commande de marchandise)
• des composants d’une application (ex. les ´éléments de l’interface graphique)
• des structures informatiques (ex. tables, liste de contacts)
• des éléments comportementaux (ex. des tâches, paiement)
Classe
Une classe est un ensemble d’objets qui ont en commun:
 les mêmes méthodes
les mêmes types d’attributs
Classe = attributs + méthodes + instanciations
 Une instance d’une classe est un objet particulier d’une classe qui peut
activer les méthodes de la classe et qui a des valeurs particulières de ses
attributs. On définit l’objet comme l’instance d’une classe.
 La classe représente pour l’objet ce que représente le type pour la
variable.
Classe
 Message: un message est une demande d’activation d’une méthode
envoyé à un objet.
 Méthodes: une méthode est une fonction ou procédure liée à un
objet qui est déclenchée à la réception d’un message particulier, la
méthode déclenchée correspond strictement au message reçu.
L’invocation d’une méthode peut déclencher 3 types d’actions:
 Manipulation des données de l’objet;
 Envoi de messages;
 Création de nouveaux objets.
 La liste des méthodes définies au sein d’un objet constitue
l’interface de l’objet pour l’utilisateur.

 Signature: la signature d’une méthode représente la précision de


son nom, du type de ses arguments et du type de donnée retournée.
Objet

 Un objet est une entité logicielle:


 Ayant une identité
 Capable de sauvegarder un état c'est-à-dire un ensemble
d’information dans des variables internes (attributs).
 Répondant à des messages précis en déclenchant des activations
internes appropriés qui changent l’état de l’objet (comportement).
Ces opération sont appelées méthodes. Ce sont des fonctions liées à
des objets et qui précisent le comportement de ces objets.

Attributs :Les attributs d’un objet sont l’ensemble des


informations se présentant sous forme de variable et permettant de
représenter l’état de l’objet.
Objet

 Algorithmique Objet:Dans l’approche orienté objet un


algorithme sera essentiellement vu comme un ensemble d’objets
auxquels l’utilisateur envoie des messages et qui s’en envoient
pendent le fonctionnement.

Ces objets seront toujours pour l’utilisateur des boites noires et qui
contiendront des variables locales, inconnues de l’environnement, et
qui ne s’y intéressera d’ailleurs pas. Le seul moyen d’accéder à ces
objets sera l’envoie des messages qu’ils sont capables de comprendre.
Classe/Objet
Classe/Objet
public class Etudiant {
private String nom;
private String prenom;
private int Age;
public Etudiant(String nom,String prenom, int Age){
this.nom = nom;
this.prenom = prenom;
this.Age= Age;
}
public String getNom(){
return this.nom ;
}
public String getpreNom(){
return this.prenom ;
}
public int getAge(){
return this.Age ;
}
}
Encapsulation

Permet de réunir au sein d’une même entité appelée classe, des données membres
(variables ou attributs) et des traitements (fonctions membres ou comportements).

Les objets de ces classes ont la propriété de masquer l’information.

Un système de protection permet de contrôler l’accès aux données et traitements de


la classe.

On peut cacher le fonctionnement interne d’une classe et éviter que les objets
de cette classe soient utilisés de façon non conforme.
Vu de l’extérieur, l’interface d’un objet (aussi appelé protocole) constitue la liste
de tous les services (i.e. les méthodes) auxquels les autres objets ont accès.

On ne peut modifier l’état d’un objet directement, on doit passer par l’interface.
Héritage

Objets physiques
Animal
Plante
Mammifère Reptile Poisson

Chien Humain Rex


(Un boa)
Fleurs
Commerçant Artiste Dentiste

Fleuriste Garagiste Peintre Philo


(Un poisson rouge)
Hubert Gaston Jean-Guy Picasso Jean Fleurs pour Béatrice
Héritage

Permet de réutiliser les classes existantes

On peut définir une nouvelle classe à partir d’une autre.

La classe dérivée pourra bénéficier


- des attributs (variables)
- des comportements (fonctions)
de la classe de base dont elle hérite.

Permet de spécialiser une classe de base en renfermant d’autres éléments dans les
classes dérivées.
imprimante

Imprimante à matrice de points Imprimante au laser


Héritage des propriétés
Polymorphisme

EXEMPLE :

Les chiens, les serpents et les poissons partagent tous un comportement commun
hérité de la classe des animaux : ils ont la capacité de se mouvoir.

Tous le font, mais chacun à sa manière : - le chien marche


- le serpent rampe
- le poisson nage.

Si on donne l’ordre de se mouvoir, chaque animal va pouvoir répondre à cet ordre,


à sa manière propre.

S’applique aux fonctions membres des classes.


Permet à 2 objets de classes différentes de réagir différemment au même appel de
méthode. Chapitre I - Introduction à la programmation orientée objets

Vous aimerez peut-être aussi