Vous êtes sur la page 1sur 7

Chapitre I Introduction à la programmation orientée objets (POO)

Introduction à la programmation orientée objets (POO)

La programmation, c’est l’art de faire résoudre des problèmes par des machines,
qui passe par une longue période d’apprentissage et d’initiation.
Un ordinateur est diminué d’intelligence, il ne peut pas donc résoudre que les
problèmes pour lesquels existe une méthode de résolution algorithmique, c’est-à-dire une
recette déterministe.

I.1 Algorithme:
Un algorithme est un procédé automatique qui transforme une information en une
autre information symbolique, c’est la réalisation d’un nombre fini d’opérations
élémentaires (instructions) chacune d’elles est réalisable en temps fini.

Avant de traiter un problème par ordinateur, il faut traduire l’algorithme dans un


langage binaire susceptible d’être exécuté par ordinateur.

I.2 Langage:
Un langage est un ensemble de mots construits avec des lettres choisies dans un
alphabet. Les mots sont assemblés on phrase selon des règles (de programmation) de
grammaire précises qui définissent la syntaxe du langage. Le sens attaché à ces phrases
c’est-à-dire leurs signification consiste la sémantique.

I.3 Langage Interprétateur:


Vérifie et exécute un code dans certain langage, mais ne génère pas le code natif
dans un fichier afin de créer une application, mais interprète le code afin de l’exécuter à la
volée. Cette technique tend à disparaître pour les langages d’usage général mais survit bien
dans des contextes plus spécialisés. Comme exemple le JavaScript, PHP, les Shell scripts,
Perl, etc...

I.4 Langage Compilateur:


Un compilateur traduit un code dans certain langage (comme le c, c++, Delphi,
etc...) vers un langage plus facilement compréhensible par la machine (le programme en
code natif). Le compilateur se charge également de toutes les vérifications du code
(Syntaxe, Lexical, etc…) et une fois compilé le programme peut être exécuté autant de fois
que nécessaire.

1
Chapitre I Introduction à la programmation orientée objets (POO)

I.5 Programmation structurée:


La programmation classique traite les programmes comme un ensemble de
données sur lesquelles agissent des procédures.

Les procédures sont les éléments actifs et importants, les données devenant des
éléments passifs qui traversent l’arborescence de programmation procédure en tant que flot
d’information.

La programmation structurée repose sur le concept que tout programme peut être
développé uniquement à partir de trois constructeurs :

- La séquence (enchaînement en séquence de traitement)

- L’alternative (instruction conditionnelle : traitement permettent d’effectuer un choix)

- La répétition (itération ou boucle : traitement peuvent être reproduit plusieurs fois)

La programmation structurée à manifestement fait progresser la qualité de la


production des logiciels. Mais avec recul, il faut bien reconnaitre que ses propres
fondements lui imposaient des limitations " naturelles". En effet la programmation
structurée reposant sur ce qu’on nomme souvent l’équation de Wirth :

Algorithmes + Structures de données = Programmes.

I.6 Programmation Orientée Objets:


La programmation orientée objet relève d’une conception ascendante comme
messages échangée par des entités de base appelés objets.
La programmation orientée objets consiste à modéliser informatiquement un
ensemble d’éléments d’une partie du monde réel en un ensemble d’entités informatiques.
Ces entités informatique sont appelées objets.
L’approche objet est une idée qui à fait ses preuves. Simula a été le premier
langage de programmation à implémenter le concept de classe en 1967. En 1976 Small
Talk implémente les concepts d’encapsulation, d’agrégation et l’héritage. D’autre part de
nombreux langages orientées objets ont été mis au point dans un but universitaire (Effel,
Objective C, Loops, C++ etc..
Les trois concepts fondamentaux qui donnent toute sa puissance à la P.O.O sont :
• Concept de modélisation à travers la notion de classe et l’instanciation de ces
classes.

2
Chapitre I Introduction à la programmation orientée objets (POO)

• Concept d’action à travers la notion d’envoi de messages et de méthodes à


l’intérieur des objets.
• Concept de construction par réutilisation et amélioration par l’utilisation de notions
d’héritage.
I.6.1 Les Objets:
La programmation oriente objet (en abrégé P.O.O) fondée justement sur le
concept objet, à savoir une association des données et des procédures (qu’on appelle
méthode) agissant sur ces données. Par analogie avec l’équation de Writh, on pourrait dire
que l’équation de la P.O.O est :
Méthodes + Données = Objet
I.6.2 Encapsulation :
L’encapsulation des données signifie qu’il n’est pas possible d’agir directement sur
les données d’un objet, il est nécessaire de passer par l’intermédiaire de ses méthodes, qui
jouent ainsi le rôle d’interface obligatoire.

L’encapsulation des données présente un intérêt en matière de qualité de logiciel.


Elle facilité considérablement la maintenance. Une modification de la structure de données
d’un objet n’a d’incidence que sur l’objet lui-même, les utilisateurs de l’objet ne seront pas
concernés par le teneur de cette modification.

I.6.3 Classe:

En P.O.O apparait généralement le concept de classe, qui correspond simplement


à la généralisation de la notion de type que l’on rencontre dans les langages classique. En
effet une classe n’est rien d’autre que la description d’un ensemble d’objet ayant une
structure de données communes et dispose des mêmes méthodes.

I.6.4 Héritage:

L’héritage permet de définir une nouvelle classe à partir d’une classe existante,
qu’on réutilise, à laquelle on ajoute des nouvelles données et de nouvelles méthodes.

I.6.5 Polymorphisme :

Généralement, en P.O.O une classe dérivée peut redéfinir (modifier) certains des
méthodes héritées de la classe de base. Cette possibilité est nommée le polymorphisme.
C’est-à-dire la possibilité de traiter de la même manière des objets de types différents. Le

3
Chapitre I Introduction à la programmation orientée objets (POO)

polymorphisme améliore l’extensibilité des programmes, en permettant d’ajouter de


nouveaux objets.

I.7 Le Langage C:

L’histoire du C commence vers les années 6, dans les laboratoires Bell de New
Jersey, c’est ici que Thomson Développa le langage de programmation B, que Dennis
Ritchie et Brain Kernighan fera évoluer en langage C vers 1972.

C est un langage dit de haut niveau comme pascal il possède toute les
caractéristiques modernes que l’on peut attendre d’un langage structuré.

C est aussi bas niveau car il permet de faire presque ce qu’il est possible de faire
en assembleur.

Finalement C est un langage très disponible et bien accepté dans les systèmes
Unix, Os2, Windows et il a été standardise par une norme ANSI/ISO pour toute
plateforme.

C n’est pas un langage à objet comme Delphi ou Java, le futur C est lié à la
programmation parallèle, au développement des réseaux et à la programmation objets C++.
Les compilateurs C font subir deux transformations aux programmes

1. Un préprocesseur fait subir au texte des transformations d’ordre purement lexical.

2. Le compilateur proprement dit prend le texte généré par le préprocesseur et le


traduit en instructions machines.

I.8 Le Langage C++:

Le langage c++, inventé par Bjarne Stroustrup vers 1983 et une évolution orientée
objet du langage C.

Un compilateur C++ est capable de compiler un code source écrit en C ANSI pur.

Le langage C++ est un surensemble de C repose sur les mêmes mécanismes


d’écriture et de génération :

• Déclaration préalables est obligatoire

• Prototype des fonctions selon les conversions ANSI.

• Exploitation de toutes les fonctions du préprocesseur C pour les inclusions de


fichiers, code conditionnel, macros définitions.

4
Chapitre I Introduction à la programmation orientée objets (POO)

La syntaxe du C++ est de 90% de C + 10% d’ajouts.

I.8.1 Nouveaux Concepts:

C++ ajoute à C trois notions importantes et quelques améliorations :

• Classes et objets : notion fondamentale et qui est le cœur même de la


programmation orientée objets.

• Surcharge de sélection : c’est la possibilité de définir des traitements (fonction) à


un niveau conceptuel plus élève qu’on programmation classique.

• Héritage : c’est la possibilité de construire de nouveaux objets par réutilisation


(dérivation) et modification d’objets existant.

• Surcharge d’opérateurs : c’est une extension des règles d’écriture des opérateurs
arithmétique classiques à des objets non scalaire.

• Entrées/Sorties par Stream : c’est une amélioration élégante des mécanismes de


lecture/écriture des données.

• Fonctions patrons (Template) : il s’agit d’un mécanisme d’aide à l’écriture des


codes C++, permettant de définir sous une forme semi-symbolique des traitements
similaires.

• Gestion d’erreurs et exceptions : C++ a introduit des principes sophistiqués de


gestion des erreurs et problèmes en exécution.

I.8.2 Les incompatibilité entre C++ et C:

a) Les définitions de fonction en C++ :

1) double fexple(u, v)
{
int u ;
double v ;
.
}
2) double fexple(int u, double v)
{

.
}

5
Chapitre I Introduction à la programmation orientée objets (POO)

Le langage C++ n’accepte que la seconde forme. En C++, un appel de fonction ne


sera accepté que si le compilateur connaît le type des arguments et celui de sa valeur
de retour.

La déclaration à l’aide d’un prototype : double fexple (int, double) ;

Remarque :

1. La portée du prototype est limitée a :

• La partie fichier source

• La fonction dans laquelle il figure

2. Le prototype peut prendre une formes plus étoffe, dans laquelle figurent les noms
d’arguments fexple(int a, double x) ;

b) Evolutions syntaxiques :

• Les constantes :

En C++ on peut définir une constante visible dans un bloc ou un seul fichier
source

const float TVA=0.166 ;

const int n= 15;

const float Tab[3]={2.2, 3.4, 5.2}

• Le type bool :

Ce type est tout naturellement formé de deux valeurs notées true ou false.

Bool OK= true ;

• Le commentaire de fin de ligne :

En C++, vous pouvez en outre utiliser les commentaires de fin de ligne en


introduisant les deux caractères //.

const float PI=3.14 ; // déclaration d’une constante

• Les entrées / sorties en C++ :

En C++, les entrées sorties reposent sur les notions de sur définition d’opérateurs, l’entrée
standard au clavier et la sortie standard à l’écran.

6
Chapitre I Introduction à la programmation orientée objets (POO)

a) Affichage à l’écran :

cout permet d’afficher sur l’écran en utilisant l’opérateur <<

int n =25 ;

cout << "Valeur de n = " ;

cout << n ;

Peuvent se condenser sur une seule ligne

cout << "Valeur de n = " << n ;

b) Lecture au clavier :

L’opérateur >> permettant de lire de l’information sur le flot cin correspondant au


clavier

int n ;

char c ;

cin>>n ;

cin>>c ;

Peuvent se condenser sur une seule ligne

cin>>n>>p ;

Les opérateurs << et >> figurent dans le fichier en-tête de nom iostream et que les
symboles correspondantes sont définis dans l’espace noms std.

#include <iostrem>

using namespace std ;