Vous êtes sur la page 1sur 43

COURS DE PROGRAMMATION

PARALLELE ET ORIENTE OBJET


CT CHRISTOPHE TSHIMANGA BEYA
Objectifs du cours

Ce cours vise à donner à l’étudiant(e) une connaissance appliquée


de la programmation et de la philosophie orientée objet.

Connaissance appliquée signifiera à la fois le savoir permettant de


comprendre le fonctionnement des systèmes développés selon les
principes du modèle orienté objet .

Afin d’atteindre cet objectif, nous développerons des habiletés de


programmation en utilisant un langage facilitant la mise en pratique
des principes exposés.

Le langage de programmation retenu pour ce cours est le java


.
INTRODUCTION
Pourquoi utiliser la programmation orientée objet ?
La programmation de logiciels a connu il y a quelques années le passage
d'une ère artisanale à une ère industrielle.
Des logiciels de plus en plus complexes doivent être réalisés dans des
délais de plus en plus courts, tout en maintenant le meilleur niveau de
qualité possible.
Comment faire pour répondre à ces exigences contradictoires ? La
solution passe par l'emploi de techniques de développement adaptées.
INTRODUCTION
La programmation orientée objet, souvent abrégée POO, permet de
concevoir une application sous la forme d'un ensemble de briques
logicielles appelées des objets.
Chaque objet joue un rôle précis et peut communiquer avec les autres
objets.
Les interactions entre les différents objets vont permettre à l'application
de réaliser les fonctionnalités attendues.
La POO facilite la conception de programmes par réutilisation de
composants existants.
Elle constitue le standard actuel en matière de développement de
logiciels.
INTRODUCTION
Objectifs de la programmation par objets
 Modélisation du monde réel:
Le monde réel est constitué d’objets (caractéristiques et comportement)
en interaction. Modélisation proche du monde réel.
 Réutilisation de composants logiciels :
Utilisation de composants préexistants (objets) comme :
En électronique : composants, circuits intégrés, modules,…
Constructions automobiles : moteurs, roues, etc…
 Réduction et explicitation du couplage entre différentes parties
d’une application
Définition d’une interface minimale et clairement définie entre objets
INTRODUCTION
Histoire de la programmation orientée objet
Les concepts de la POO naissent au cours des années 1970 dans des
laboratoires de recherche en informatique.
Les premiers langages de programmation véritablement objets ont été
Simula, puis Smalltalk.
A partir des années 1980, les principes de la POO sont appliqués dans
de nombreux langages comme Eiffel (créé par le Français Bertrand
Meyer), C++ (une extension objet du langage C créé par le Danois Bjarne
Stroustrup) ou encore Objective C (une autre extension objet du C
utilisé, entre autres, par l'iOS d'Apple).
INTRODUCTION
Les années 1990 ont vu l'avènement des langages orientés objet dans
de nombreux secteurs du développement logiciel, et la création du
langage Java par la société Sun Microsystems.

Le succès de ce langage, plus simple à utiliser que ses prédécesseurs, a


conduit Microsoft à riposter en créant au début des années 2000 la
plate-forme .NET et le langage C#, cousin de Java.

De nos jours, de très nombreux langages permettent d'utiliser les


principes de la POO dans des domaines variés : Java et C# bien sûr, mais
aussi PHP (à partir de la version 5), VB.NET, PowerShell, Python, etc.
INTRODUCTION
Une connaissance minimale des principes de la POO est donc
indispensable à tout informaticien, qu'il soit développeur ou non.

REMARQUE : la POO s'accompagne d'un changement dans la manière


de penser les problèmes et de concevoir l'architecture des applications
informatiques.
C'est ce que l'on appelle l'analyse (ou la modélisation) orientée objet.
Son principal support est le langage de modélisation UML.
INTRODUCTION
Définitions
Programmation orientée objet : ou programmation par objet, est un
paradigme de programmation informatique qui consiste en la définition
et l'assemblage de briques logicielles appelées objets ;
un objet représente un concept, une idée ou toute entité du monde
physique, comme une voiture, une personne ou encore une page d'un
livre.
INTRODUCTION
Programmation procédurale
INTRODUCTION
INTRODUCTION
Programmation procédurale
 La programmation procédurale montre ses limites dans les projets
complexes (plus de 10 000 lignes de codes)
 Le code procédurale est difficile à débugguer, difficile à tester et donc
moins fiable.
 La qualité du programme se dégrade dans le temps. Il devient très
difficile voir impossible de faire des mises à jour intégrant de
nouvelles fonctionnalités.
 La reprise du code par d'autres développeurs est problèmatique.
Notion d’objet et de classe
Notion d’objet:
Introduction
Le monde dans lequel nous vivons est constitué d'objets matériels de
toutes sortes. Par extension, il est possible de définir d'autres objets,
sans masse, comme les comptes en banque, les polices d'assurance.
Ces objets correspondent plutôt à des concepts plutôt qu'à des entités
physiques.
Notion d’objet et de classe

Les objets
L'objet est une unité atomique formée de l'union d'un état et d'un
comportement.
Tout objet présente les trois caractéristiques suivantes: un état, un
comportement et une identité.
Notion d’objet et de classe
Notion d’objet et de classe
Notion d’objet et de classe
Notion d’objet et de classe
L'état :
L'état regroupe les valeurs instantanées de tous les attributs d'un objet
(c'est à dire ses propriétés) sachant qu'un attribut est une information
qualifiant l'objet qui le contient.
Chaque attribut peut prendre une valeur dans un domaine de définition
donné.
L'état d'un objet, à un instant donné, correspond à une sélection de
valeurs, parmi toutes les valeurs possibles des différents attributs.
Notion d’objet et de classe
Le comportement
Le comportement regroupe toutes les compétences d'un objet et décrit
les actions et les réactions de cet objet.
Chaque atome de comportement et appelé opération (ou méthode).
Notion d’objet et de classe
L'identité
En plus de son état, un objet comporte une identité qui caractérise son
existence propre.
L'identité permet de distinguer tout objet de façon non ambigu, et
cela indépendamment de son état.
Notion d’objet et de classe
Notion d’objet et de classe
Notion de classe:
 Une classe représente un ensemble d'objets qui partagent une
structure commune et un comportement commun.
 Une classe est la description d'une famille d'objets qui ont la
même structure et les mêmes comportements.
 Une classe est une sorte de moule a partir duquel sont générés les
objets.
Notion d’objet et de classe
Notion d’objet et de classe
Pourquoi créer une classe ?
Notion d’objet et de classe
 La classe décrit donc la structure interne d'un objet, c'est à dire: les
données qu'il regroupe (attributs) et les actions qu'il est capable
d'assurer (méthodes).
 On dit qu'un objet est une instance de la classe ou un état de celle-ci.
L'instanciation d'une classe est un objet unique.
Notion d’objet et de classe
Définissez la structure de la classe
L'Encapsulation
 Le principe est d'interdire l'accès direct aux attributs d'un objet.
On ne dialogue avec l'objet qu'à travers une interface définissant les
services accessibles aux utilisateurs de l'objet.
 C'est alors le rôle des méthodes de modifier ou de retourner la valeur
des attributs.
L'Encapsulation
L'écriture de classes offre d'autres avantages que le simple
regroupement de données et de
traitements.
Parmi ceux-ci figure la possibilité de restreindre l'accès à certains
éléments de la classe. C'est ce que l'on appelle l'encapsulation.
L'Encapsulation
DEFINITION : l'encapsulation est l'un des principes fondamentaux de la
POO.
Il consiste à restreindre l'accès à certains éléments d'une classe
(le plus souvent ses attributs).
L'objectif de l'encapsulation est de ne laisser accessible que le strict
nécessaire pour que la classe soit utilisable.
L'Encapsulation
Avantages
L'encapsulation offre de nombreux avantages :
 diminution des risques de mauvaise manipulation d'une classe.
 création de classes "boîtes noires" par masquage des détails
internes.
 possibilité de modifier les détails internes d'une classe (la manière
dont elle fonctionne) sans changer son comportement extérieur (ce
qu'elle permet de faire).
L'héritage
Relation de spécialisation/généralisation entre deux classes. Elle indique
qu'une classe est une sous-classe d'une autre, c.à.d. qu'elle possède les
mêmes attributs et méthodes plus d'autres qui lui sont propres.
L'héritage
L'héritage
L'héritage
L'héritage
L'héritage
Polymorphisme
DEFINITION : utiliser le polymorphisme consiste à écrire un code
générique qui pourra s'appliquer à des objets appartenant à des
classes différentes.
Le polymorphisme rend le code plus concis, plus élégant et plus sûr.
C'est un mécanisme à utiliser dès que l'occasion se présente. Il peut
être enrichi grâce aux mécanismes que nous allons découvrir
maintenant.
Polymorphisme
Les Classes Abstraites
Les Classes Abstraites
Les Classes Abstraites
Les Interfaces
 Si on considère une classe abstraite n’implantant aucune méthode et
aucun champ , on aboutit à la notion d’interface.
 Une interface regroupe la signature des méthodes qui devront être
implémentées par les classes l'implémentant. C.à.d : en
implémentant une interface, une classe s’oblige à définir l’ensemble
des méthodes de l’interface.
 On peut implémenter plus d'une interface par classe, à condition que
celles-ci n'aient aucune méthode portant le même nom.
Les Interfaces

Vous aimerez peut-être aussi