Cours:
Programmation Orientée Objet
(Application avec Java)
Enseigné par : Ghada FEKI
Elaboré par: Ghada FEKI et Agnès GHORBEL
Année Universitaire: 2022 - 2023
Fiche matière
Objectifs :
Ce cours intégré et ces travaux pratiques permettent la découverte des notions du concept objet, la
représentation des éléments du monde réel par des entités informatiques appelés "objets" en adoptant
un haut niveau d'abstraction et le développement des applications par une approche objet. Plus
précisément, se familiariser avec les concepts de la technologie objet. L’étudiant devra être capable de
réaliser des applications informatiques basées sur le paradigme de la programmation orientée objet.
Plan :
• Introduction Générale
• Syntaxe du Langage
• Classe et Objet
• Encapsulation
• Héritage et polymorphisme
• Classes abstraites et interfaces
• Les Exceptions
Evaluation :
• Note 1 : Contrôle Continu
• Note 2 : Examen Pratique
2
Chapitre 1:
Introduction Générale
3
L’approche Objet
La programmation orientée objet consiste à représenter les éléments
du monde réel par des entités informatiques appelées « objets »
On considère ce que le système doit faire, mais aussi ce qu’il est
1. Ce que le système est : décomposition en objets (représentation
du monde réel)
2. Ce que le système fait : les objets communiquent entre eux par
appels de fonctions (méthodes) ; envoi dynamique des messages.
Avantage : l’évolution ne remet en cause que l’aspect dynamique sans
remettre en cause les objets
L’approche Objet
Différence fondamentale entre la programmation procédurale et
la programmation objet :
1. En programmation procédurale : décomposition de tâches en
sous-tâches
2. En programmation objet : on identifie les acteurs (les entités
comportementales) du problème puis on détermine la façon dont
ils doivent interagir pour que le problème soit résolu.
5
L’approche Objet
Objet = Etat + Comportement [+ Identité]
1. Etat : valeurs des attributs (données) d’un objet
2. Comportement : opérations possibles sur un objet déclenchées
par des stimulations externes (appels de méthodes ou messages
envoyées par d’autres objets)
3. Identité : chaque objet à une existence propre (il occupe une place
en mémoire qui lui est propre). Les objets sont différenciés par
leurs noms
6
L’approche Objet
Exemple
On embarque au sein d’une entité (un objet) son état (mémoire)
état état
7
L’approche Objet
Un système complexe a un grand nombre d’objets. Pour réduire cette
complexité, on regroupe des objets en classes.
Une classe est une description d’un ensemble d’objets ayant une
structure de données commune (attributs) et disposant des mêmes
méthodes.
Classe = Type
Une classe peut être vue comme un modèle
d’objet
Une instance d’une classe est l’un des objets
représentant la classe
8
Les avantages de l’approche Objet
Les fonctionnalités propres au style objet favorisent:
La programmation modulaire
L'abstraction
La spécialisation
L'objectif est de produire du code
Facile à développer, à maintenir, à faire évoluer,
Réutilisable, tout ou en partie, sans avoir besoin de le dupliquer
9
Le Langage JAVA
est né en 1995 chez Sun Microsystems
Version actuelle Java 8, actuellement Oracle
est orienté objet
est fortement typé
Toute variable doit être déclarée avec un type
Le compilateur vérifie que les utilisations des variables sont compatibles
avec leur type (notamment via un soustypage correct)
Les types sont d'une part fournis par le langage, mais également par la
définition des classes
est compilé
En bytecode, i.e., code intermédiaire indépendant de la machine
est interprété
Le bytecode est interprété par une machine virtuelle Java
10
Le Langage JAVA
Java est un langage interprété, ce qui signifie qu’un programme compilé n’est pas
directement exécutable par le SE mais il doit être interprété par un autre programme,
qu’on appelle interpréteur
11
Le Langage JAVA
En Java, le code source n’est pas traduit directement dans le langage
de l’ordinateur
Il est d’abord traduit dans un langage appelé « bytecode », langage
d’une machine virtuelle (JVM: Java Virtual Machine) définie par Oracle
Ce langage est indépendant de l’ordinateur qui va exécuter le
programme
12
Le Langage JAVA
13
Le Langage JAVA
Dans la technologie Java, on a donc besoin :
Du langage de programmation et du compilateur
De la JVM et des APIs (Application Programming Interfaces) regroupées
dans une « plateforme »:
Java SE (Java Platform, Standard Edition): Java SE 6 pour applications clas
siques, desktop
Java EE (Java Platform, Enterprise Edition): Java EE 6 pour développer et
déployer des applications serveur, Web services, etc.
Si pour exécuter, il suffit du JRE (Java Runtime Execution) par opposition
au JDK (Java Developpement Kit)
14
IDE, SDK, JDK, JRE
• On développe, généralement, un programme JAVA en utilisant un
IDE,
• Afin de pouvoir créer une application JAVA consistante, on a besoin
du JDK,
• Pour tester et lancer le code écrit, on doit, nécessairement, disposer du
JRE.
15
IDE, SDK, JDK, JRE
• IDE (Integrated Development Environment)
Un programme regroupant un ensemble d'outils pour le développement de
logiciels.
En général, un IDE regroupe un éditeur de texte, un compilateur, des outils
automatiques de fabrication, et souvent un débogueur. (Exp: Eclipse, Netbeans)
• SDK (Software Development Kit)
Ce kit est composé d'un JRE, d'un compilateur et de nombreux programmes
utiles, des exemples de programmes Java, les sources de toutes les classes de l'api.
• JRE (Java Runtime Environment)
L’environnement qui permet d'exécuter les applications java,
Il est constitué de la JVM en particulier (Java Virtual Machine).
• JDK (Java Development Kit)
Outils permettant de développer, compiler (javac), débuguer (jdb) et exécuter un
programme java.
Il y a aussi des outils d'archivage (jar), de génération de documentation (javadoc).
16
Le JDK (Java Development Kit)
Sun fourni gratuitement un ensemble d’outils et d’API pour permettre le
développement de programmes avec Java.
Ce kit nommé JDK est librement téléchargeable sur le site de Sun
[Link]
Le JDK contient :
le JRE
Le compilateur
Un interpréteur (java)
Un générateur de document (javadoc):
Un débogueur minimale (jdb)
17
Le JDK (Java Development Kit)
Pour un bon fonctionnement du JDK, il est recommandé de bien
paramétrer deux variables systèmes :
La variable PATH qui définit les chemins de recherche des
exécutable
La variable CLASSPATH qui définit les chemins de recherche des
classes et bibliothèques Java
18
Exemple d’outils de développement
Environnement de développement
Eclipse
NetBeans
JBuilder
JCreator
Visual J++
19
Structure générale d’une application Java
Une application Java possède un point d’entrée unique qui est la
méthode (ou fonction) « main() » de prototype:
Public static void main( String args[])
En java tout se trouve dans une classe.
Une classe ne contient pas directement du code, elle contient
plutôt les déclarations de variables (attributs) et des méthodes
(fonctions).
20
Structure générale d’une application Java
Classe
• LES ATTRIBUTS :
les données • Les attributs représentent la description
Partie statique
(Propriétés) des données propres à chaque classe
d'objets
• LES METHODES :
le code les • Les méthodes représentent l'ensemble
Partie dynamique manipulant des actions, procédures, fonctions ou
opérations que l'on peut associer à une
(Méthodes) classe
21
Structure générale d’une application Java
Le nom du fichier est nécessairement celui
Fichier [Link] de la classe avec l’extension .java
• Ça définit une classe, qui est une unité de compilation
• Comme il y a une méthode main, cette classe est « exécutable » 22
Mon premier programme Java
Compilation et execution
$ javac [Link]
$ ls
[Link] [Link]
$ java HelloWorld
Hello world ! 23