Vous êtes sur la page 1sur 11

POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

Chapitre 1 : Introduction générale

1. La programmation orientée objet


 La Programmation Orientée Objet (POO) est un style de programmation où l’on considère
que les composants autonomes (les objets) disposent de ressources et de moyens d’interaction
entre eux.
 La programmation procédurale suppose que le programmeur s’intéresse en priorité aux
traitements que son programme devra effectuer.
o Identifier les traitements
o puis Ecrire les fonctions
o les données sont des paramètres d’entrées aux fonctions
 La programmation orientée objet propose une méthodologie centrée sur les données.
o Identifier un ensemble d’objets,
o puis écrire les traitements
o On associe chaque traitement à un objet donné.
 Un objet peut être vu comme une entité regroupant un ensemble de données et de
méthodes (l’équivalent d’une fonction en C) de traitement.
 Idée de base :
o Regrouper les données et les traitements relatifs à une même entité (réelle ou
conceptuelle) dans une entité informatique appelée objet.
o Un système d’information est un ensemble d’objets qui interagissent.
o Les modèles d’objets sont définis dans des classes.
 La programmation procédurale consiste à écrire des procédures ou des fonctions qui
effectuent des opérations sur les données, tandis que la programmation orientée objet consiste
à créer des objets contenant à la fois des données et des fonctions.
 Avantages :
o Meilleure modularité
o Maintenance aisée des applications
o Réutilisabilité des objets dans d’autres programmes

Rym KALAI 1
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

2. L’objet
 Les données de l’objet sont appelées des attributs. Elles indiquent son état à un instant donné.
 Les traitements (ou fonctions) de l’objet sont appelés des méthodes. Ils définissent son
comportement.
 Chaque objet possède une identification unique qui est indiquée par une ou plusieurs
références.
 L’objet peut se comporter comme une boite noire (le contenu est masqué par des contrôles
d’accès). Dans ce cas, quelques méthodes doivent assurer son intégration dans le système
(interface de service)
 Un objet est une variable (presque) comme les autres. Il faut notamment qu’il soit déclaré
avec son type. Le type d’un objet est un type complexe (par opposition aux types primitifs
entier, caractère, …) qu’on appelle une classe.
 Un objet consiste à encapsuler l’état et le comportement dans une seule unité de
programmation.
 Un objet java est un objet du monde réel.
Exemple :

Rym KALAI 2
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

3. La classe
 La classe est un modèle de définition pour les objets ayant les mêmes propriétés.
 Une classe doit être considérée comme un nouveau type défini par le concepteur.
 Il existe des contrôles d’utilisation d’une classe.
 La classe définie les contrôles (ou restrictions) d’accès aux membres (attributs et méthodes)
de ses objets.
 Le contrôle d’utilisation d’une classe et celui d’accès aux membres d’une classe sont deux
concepts différents.
 Une classe regroupe un ensemble de données (qui peuvent être des variables primitives ou
des objets) et un ensemble de méthodes de traitement de ces données et/ou de données
extérieures à la classe.

Prenons l’exemple de Gestion d’une bibliothèque d’une université.


Objets Méthodes
Etudiant  Trouver les livres disponibles
Etat, livres, emprunts
 Trouver les livres par thème
Livre
Etudiants, emprunts  Trouver les étudiants retardataires
Thème
 Vérifier l’état d’un étudiant
Année, Livres
Emprunt  Déterminer les livres non rendus
Etudiants, livre
 Calculer le nombre d’emprunts

Des données Des comportements

Les objets s’échangent des messages en fonction de leurs comportements


associés.

Rym KALAI 3
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

4. Les avantages et les inconvénients de la POO


La programmation orientée objets admet des avantages mais aussi des inconvénients :

 Les avantages sont :

 Amélioration de la productivité du développement logiciel: la programmation


orientée objet est modulaire. Les objets peuvent également être réutilisés dans
plusieurs applications.
 Amélioration de la maintenabilité des logiciels: puisque la conception étant
modulaire, une partie du système peut être mise à jour en cas de problèmes sans
avoir besoin de faire changements.
 Développement plus rapide : la réutilisation permet un développement plus
rapide.
 Réduction des coûts de développement et meilleure qualité logiciel: la
réutilisation des logiciels réduit également le coût de développement. Ce qui permet
d'utiliser plus de temps et de ressources pour la vérification du logiciel.

 Les inconvénients sont :

 Nécessite du temps d’apprentissage : pour s’habituer aux techniques de


programmation tel que l’héritage et le polymorphisme.
 La grande taille de programme: les programmes orientés objets impliquent
généralement plus de lignes de code que les programmes procéduraux.
 Programmes plus lents: les programmes orientés objet sont généralement plus
lents que les programmes basés sur des procédures, car ils nécessitent généralement
plus d'instructions pour être exécutées.

5. Le langage Java
 Java est un langage de programmation orienté objet (pur), développé par
« Sun Microsystems» en 1995 et racheté par « Oracle » en 2009.

Rym KALAI 4
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

5.1. Caractéristiques de base du langage Java


 Simple : C’est un langage simple à prendre en main. Basé sur le langage C/C++ mais laisse
de côté les sources de problèmes (pointeurs, structures, gestion de la mémoire, héritage
multiple, macros etc.).
 Orienté objet : Java est un langage purement orienté objet.
Notion de classe.
Héritage simple.
Une librairie plus de classes est fournie.
 Distribué : Propose une API réseau standard. Cette dernière permet de manipuler, par
exemple, les protocoles HTTP & FTP avec aisance. Des API pour la communication entre
des objets distribués (Remote Method Invocation).
 Interprété : Un code source doit être traduit dans le langage machine avant d’être exécuté.
Compilateur : traduction du code source dans le langage binaire de la machine sur laquelle
il sera exécuté.
Interpréteur : idem qu’un compilateur, sauf qu’il procède par étapes successives de
compilation et exécution. Chaque instruction est compilée puis exécutée, puis le tour à
l’instruction qui suit etc.
Compilateur Java traduit le code source Java en bytecode (code portable). Par la suite un
interpréteur Java spécifique à une machine donnée (Java Virtual Machine : JVM Machine
Virtuelle), traduit et exécute le bytecode.
 Robuste :
Pas de pointeurs.
Gestion de mémoire indépendante.
Mécanisme d’exceptions pour la gestion des erreurs.
Compilateur très contraignant.
Pas d’héritage multiple ni surcharge des opérateurs.
 Dynamique : Java charge dynamiquement les classes suivant les besoins de l’application
(pas d’édition de lien).
 Multithreadé : Un Thread est un flot d’instruction s’exécutant en concurrence avec
d’autres threads dans un même processus.
 Multi-plateforme : il est conçu pour être indépendant de la machine exécutant le code
grâce à la JVM (Java Virtual Machine ou machine virtuelle de Java).

Rym KALAI 5
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

5.2. Historique des versions de Java

5.3. Java vs C++


 Le C++ dépend de la plateforme par contre Java est indépendant. Le code source en C++
est compilé en code natif (exécutable), qui ne s'exécute que sur une architecture particulière.
 Le code Java est compilé en bytecode qui peut s'exécuter sur n’importe quelle plateforme
donc il faudra installer une machine virtuelle Java.
 Les bytecodes produits sur une machine pourront s'exécuter sur des architectures
différentes.
 Le programme est distribué à la fois de manière compilé et portable.

Rym KALAI 6
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

6. Outils de développement
 Le JDK (Java Development Kit) est le kit de développement de base qui est proposé
gratuitement. Il contient plusieurs outils qu’on peut appeler par de simples commandes:
o javac : le compilateur java
o java : l’interpréteur d’application (JVM)
o jar : un compresseur de classes Java
o appletviewer : un interpréteur d’applet
o …..
 La JRE (Java Runtime Environment) doit être installée sur les machines qui exécuteront
des programmes Java. La JRE contient la JVM, des librairies et d’autres composants
nécessaires à l’exécution des applets et des applications Java.
 LE JDK contient lui-même le JRE.

Figure 1. Les environnements Java

 Environnement de Développement Intégrés (EDI ou IDE en anglais) :


o Kawa, JBuilder, Visual J++, Eclipse, Netbeans, ….

Rym KALAI 7
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

7. Compilation et exécution d’un programme Java


 Source Java :
Le fichier source d’un programme java est un fichier texte dont l’extension est « .java ».
Une application peut être constituée de plusieurs fichiers sources.
 Pseudo code Java :
Le processeur de l’ordinateur ne comprend pas le code Java (code source).
Un fichier source Java est compilé pour générer le pseudo code (ou byte code) sous forme
d’un fichier dont l’extension est « .class »
 Interprétation :
La JVM (nommé interpréteur Java) qui tourne sur une plateforme donnée est capable
d’interpréter le byte code et le transforme en code binaire exécutable par le processeur.
Lors de l'exécution d'un programme Java compilé, la machine virtuelle Java JVM :
 Lit le bytecode
 Vérifie qu'il est correct
 Optimise les instructions
 Compile le bytecode en code natif
 Exécute le code natif

Figure 2. Les étapes pour exécuter un programme Java

Rym KALAI 8
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

8. Structure générale d’une application Java

 Une application Java indépendante possède un point d’entrée unique qui est la méthode
(ou fonction) « main () » de prototype :

public static void main (String[] args)

 Les arguments sont contenus dans args : le tableau d’objets String.


 En Java, tout se trouve dans une classe. Il ne peut y avoir de déclarations ou de code en
dehors du corps d’une classe.
 Une classe ne contient pas directement du code. Elle contient des déclarations de variables
(attributs) et des méthodes (fonctions).
 Une méthode peut contenir du code et des déclarations de variables locales.
 Tout fichier source doit porter le nom de la classe publique qu’il contient avec l’extension
« .java »

Exemples :
public class Exemple
{
//déclaration des attributs
//définition des méthodes
public static void main (String [] args)
{
//déclaration des variables locales
System.out.println(“Bonjour”);
}
}

public class MaClasseAvecArguments


{
public static void main(String[] args)
{
System.out.println("Bonjour "+ args[0] + " " + args[1]);
}
}

Rym KALAI 9
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

Application :
Quel est le résultat obtenu suite à la compilation et l’exécution du programme java illustré par le
fichier suivant :

Avec :

Solution :

Rym KALAI 10
POO: PROGRAMMATION ORIENTEE OBJET Spécialité : RSI-DSI

9. Références
 Claude Delannoy : programmer en java, ISBN10 : 2212135661, Eyrolles 2012.
 M. Bouzeghoub, G. Gardarin, P. Valduriez, Les objets, Eyrolles 1998.
 E.Puybaret, Java - 1 Premières applications professionnelles en Java, Les Cahiers du
Programmeur 2003.
 G.Clavel, et al., Java, La synthèse, Dunod 2003.
 H. Bersini, La programmation orientée objet, Cours et exercices en UML 2, avec Java, C#
2, C++, Python, PHP 5 et LINQ, Eyrolles 2008
 C.Delannoy, S'initier à la programmation : Avec des exemples en C, C++, C#, Java et
PHP, Eyrolles, 2008

Sites Web
 www.java.com : site officiel Java (JDK et doc.)
 https://www.javaworld.com : Infos sur Java
 https://www.oracle.com/fr/java/ : Logiciel Java

Rym KALAI 11

Vous aimerez peut-être aussi