Programmation OO en Java
Hassen Lazrag
Docteur ingénieur en informatique: Iteam University
Objectifs du cours
Décrire les éléments-clé de la plate-forme Java
Prendre en mains l’environnement de développement Eclipse/
IntellIj
Décrire la syntaxe du langage
Comprendre le paradigme OO et utiliser Java pour le mettre en
œuvre
Compiler et exécuter des applications Java
Cours Java 2024 Hassen Lazrag
Programme
C’est quoi java?
Programmation orientée Objet Java
Objet et Classe
Héritage et accessibilité
Polymorphisme
Interfaces graphique javaFX
Accès aux bases de données
Cours Java 2024 Hassen Lazrag
Programmation OO en Java
Chapitre I: Introduction – C’est quoi java?
Contenu du chapitre
Paradigme de programmation
Qu’est-ce que Java ?
Java comme langage de programmation
La plateforme Java
La Java Virtual Machine (JVM)
Les interfaces de programmation d’application (API)
Déploiement d’un programme
Les versions de Java
Cours Java 2024 Hassen Lazrag
Paradigme de programmation
Cours Java 2024 Hassen Lazrag
Paradigme de programmation
Le paradigme de programmation est la façon d'approcher
la programmation informatique et de formuler les
solutions aux problèmes et leur formalisation dans un
langage de programmation approprié.
Cours Java 2024 Hassen Lazrag
Paradigme de programmation
Paradigmes de
Paradigme impératif Paradigme déclaratif
programmation
Programmation Orientée Objet Programmation Fonctionnelle
Programmation Procédurale Programmation Logique
Approche de traitement Approche de traitement de
parallèle base de données
Déclaratif
Fonctionnel
Orienté objet
Piloté par les événements ….
Cours Java 2024 Hassen Lazrag
Impératif vs Déclaratif
Impérative Déclarative
Comment ? Quoi ?
Cours Java 2024 Hassen Lazrag
Impératif vs Déclaratif
Paradigme de programmation impérative Paradigme de programmation déclarative
« Déroulement ? » « Objectif ? »
Traditionnel Nouvelle tendance
Un programme élaboré selon ce paradigme se Un programme élaboré selon ce paradigme se compose
compose d’une liste d’instructions indiquant à d’instructions sur la manière dont le programme doit
l’ordinateur l’ordre dans lequel il doit calculer et procéder en fonction d’une saisie. Les calculs sont
exécuter des actions. exécutés par la manipulation de valeurs. Le
déroulement est contrôlé par une procédure de
récurrence.
Son nom vient du latin « imperare », soit Son nom vient sur latin « declarare », soit « désigner ».
« ordonner ».
Les étapes de résolution souhaitées sont Le résultat souhaité est énoncé.
énoncées.
Les langages de programmation typiques sont Les langages de programmation typiques sont Lisp, ML,
Haskell, F#, Prolog et Oz.
C, C++, Python, Java, ainsi que tous les
langages d’assemblage.
Cours Java 2024 Hassen Lazrag
C’es quoi java?
Cours Java 2024 Hassen Lazrag
C’est quoi java?
Cours Java 2024 Hassen Lazrag
Qu’est-ce que Java ?
Java est un langage de programmation
Conçu par James Gosling en 1990 à Sun Microsystems
En 2009, Sun est racheté par Oracle Corporation
Un programme Java est compilé et interprété
Java est une plateforme
La plateforme Java, uniquement software, est exécutée sur la plateforme
du système d’exploitation
La « Java Platform » est constituée de :
La « Java Virtual Machine » (JVM)
Des APIs Java
Cours Java 2024 Hassen Lazrag
Qu’est-ce que Java ?
Langage de programmation orienté objet (Classe, Objet, Héritage,
Encapsulation et Polymorphisme)
Avec java on peut créer des application multiplateformes.
Les applications java sont portables. C’est-à-dire, on peut créer une
application java dans une plateforme donnée et on peut l’exécuter sur
n’importe quelle autre plateforme.
Le principe de java est : Write Once Run Every Where
Open source: On peut récupérer le code source de java. Ce qui permet
aux développeurs, en cas de besoin, de développer ou modifier des
fonctionnalités de java.
Cours Java 2024 Hassen Lazrag
Qu’est-ce que Java ?
Java est utilisé pour créer :
Des applications Desktop
Des applications pour les smart phones et les applications embarquées
Des application JEE (Java Entreprise Edition)
Pour créer une application java, il faut installer un kit de
développement java
JSDK : Java Standard Developpement Kit, pour développer les application
DeskTop
JME : Java Mobile Edition, pour développer les applications pour les
téléphones potables (smartphones)
JEE : Java Entreprise Edition, pour développer les applications qui vont
s’exécuter dans un serveur d’application JEE (Web Sphere Web Logic,
JBoss).
Cours Java 2024 Hassen Lazrag
Langage de programmation
Cours Java 2024 Hassen Lazrag
Java comme langage de programmation
Java est un langage:
Orienté objet
Fortement typé avec classes
Un environnement d’exécution (JRE) :
Java Runtime Envirenement
une machine virtuelle et un ensemble de bibliothèques
Un environnement de développement (JDK) :
Java Developpement Kit
Un compilateur et un ensemble d’outils
Cours Java 2024 Hassen Lazrag
Simple et orienté objet
Java est un langage de programmation simple
Langage de programmation au même titre que
C/C++/Perl/Smalltalk/Fortran mais plus simple
Les aspects fondamentaux du langage sont rapidement assimilés
Java est orienté objet :
La technologie OO après un moment de gestation est maintenant
complètement intégrée
En java, tout est un objet (à la différence du C++ par ex.)
Simple aussi parce qu’il comporte un grand nombre d’objets
prédéfinis pour l’utilisateur
Java est familier pour les programmeurs C++
Cours Java 2024 Hassen Lazrag
Neutre architecturalement
Il existe une grande diversité de systèmes
d’exploitation
[Link]
Le compilateur Java génère un bytecode,
c’est à dire un format intermédiaire, neutre
architecturalement, conçu pour faire transiter
efficacement le code vers des hardware Java Compiler
différents et/ou plateformes différentes
Le bytecode ne peut-être interprété que par
le processeur de la JVM
[Link]
= bytecode
JVM JVM JVM
Mac Windows Unix
Cours Java 2024 Hassen Lazrag
Plateforme Java
Cours Java 2024 Hassen Lazrag
Java comme Plateforme
Une plateforme est un environnement logiciel ou matériel dans lequel un
programme s'exécute (Microsoft Windows, Linux, Mac et Solaris).
La plate-forme Java n'est qu'une plate-forme logicielle qui s'exécute sur d'autres
plates-formes matérielles.
La plate-forme Java est composée d'une hiérarchie de composants illustrée dans la
figure ci-dessous.
Java Plateform
Java Development Kit (JDK)
Java Runtime Java Langage Specification Java Developments
Environment (JRE) (Java syntax and semantics ) Tools (Java compiler, Class File, ..)
Java Class
JVM Java API Libraries
Cours Java 2024 Hassen Lazrag
JDK
Cours Java 2024 Hassen Lazrag
Java Developpement Kit
Le JDK est un environnement de développement permettant de créer des
applications Java à l'aide du langage de programmation Java.
Le JDK est un ensemble d’outils qui contient tout ce qui sera nécessaire
pour développer et exécuter une application Java. Il comprend:
le Java Run-time Environment (JRE)
des outils de développement comme le compilateur (javac), le loader
d'applications Java (java), le débogueur Java, etc.
Cours Java 2024 Hassen Lazrag
JRE
Cours Java 2024 Hassen Lazrag
Java Run-time Environment
Le Java Run-time Environment (JRE), également connu sous le nom de
Java Run-time, fait partie du Java Development Kit (JDK).
Le JRE fournit la configuration minimale requise pour l'exécution d'une
application Java ; il se compose:
De la machine virtuelle Java (JVM),
Des classes principales et des fichiers de support
Cours Java 2024 Hassen Lazrag
Machine virtuelle
Cours Java 2024 Hassen Lazrag
Java Virtual Machine
JVM est une machine virtuelle abstraite. Il est chargé de convertir le bytecode en
langage machine et d'exécuter le programme Java.
JVM est une machine virtuelle qui fonctionne au-dessus du système d'exploitation
Lit le bytecode compilé (indépendant de la plateforme)
Après avoir compiler l'application Java (.java) afin qu'elle puisse être convertie au
format bytecode (fichier .class). Qui sera ensuite utilisé par JVM pour exécuter
l'application Java.
Cours Java 2024 Hassen Lazrag
Java Runtime Environment
Trois tâches principales :
Charger le code (class
loader)
Vérifier le code (bytecode
verifier)
Exécuter le code (runtime
interpreter)
Cours Java 2024 Hassen Lazrag
API
Cours Java 2024 Hassen Lazrag
Java Application Programming Interface (API)
L’API Java est structuré en libraires (packages). Les packages
comprennent des ensembles fonctionnels de composants (classes).
Le noyau (core) de l’API Java (incluse dans toute implémentation
complète de la plateforme Java) comprend notamment :
Essentials (data types, objects, string, array, vector, I/O,date,…)
Applet
Abstract Windowing Toolkit (AWT)
Basic Networking (URL, Socket –TCP or UDP-,IP)
Evolved Networking (Remote Method Invocation)
Internationalization
Security
…..
Cours Java 2024 Hassen Lazrag
Déploiement d’un programme
Cours Java 2024 Hassen Lazrag
Paradigme classique de la compilation
Cours Java 2024 Hassen Lazrag
Paradigme classique de la compilation
MyProgram.c
Exécuté une seule fois Génère du code natif directement
Mais différent pour Compiler exécutable, mais spécifique à
chaque environnement chaque environnement
MyProgram.o
010110…
Cours Java 2024 Hassen Lazrag
Nouvelle paradigme de la compilation
Cours Java 2024 Hassen Lazrag
Java- JDK, JRE, JVM and JIT
Cours Java 2024 Hassen Lazrag
Changement de la vision traditionnelle de la compilation
Chaque programme est compilé et interprété
« Write once run everywhere »
[Link]
Traduit le programme en un code intermédiaire
Exécuté une seule fois Compiler Appelé bytecode – indépendant de la machine
[Link]
Chaque fois que le
programme est exécuté Interpreter Lit le bytecode et exécute sur la machine
010110…
Cours Java 2024 Hassen Lazrag
Changement de la vision traditionnelle de la compilation
Cours Java 2024 Hassen Lazrag
Les versions de java
Cours Java 2024 Hassen Lazrag
Java 2 Standard Edition
Cours Java 2024 Hassen Lazrag
Java évolue tout le temps
Java n’est pas un langage normalisé et il continu d’évoluer. Cette évolution
se fait en ajoutant de nouvelle API, mais aussi en modifiant la machine
virtuelle.
L’ensemble de ces modifications est géré par le JCP (Java Community
Process ; http ://[Link]/) dans lequel Sun continue de tenir une place
prépondérante.
Il peut alors être nécessaire d’identifier une version précise du compilateur
et/ou de la machine virtuelle : Ça n’est pas simple.
La numérotation des versions :
1.0 −> 1.1 −> 1.2 −> 1.3 −>1.4 −>5.0 −>6.0 −>7.08.0 11.0 14.0, ..17.0…21
Toutes ces versions : Java 2
Cours Java 2024 Hassen Lazrag
Java 2 Standard Edition J2SE
L’outil de base : le JDK (Java Development Kit) de SUN :
[Link]
gratuit.
Dernière version : 8, 11, 14. 15. 17, …21
Comprend de nombreux outils :
le compilateur.
le compilateur à la volé "JIT".
le débogueur.
le générateur de documentation.
Cours Java 2024 Hassen Lazrag
QCM
Cours Java 2024 Hassen Lazrag
QCM(1/4)
Répondez aux questions en cochant la réponse.
1. Quel est le type de programmation le plus ancien ?
□ Programmation orientée objet
□ Programmation procédurale
□ Programmation modulaire
2. La programmation modulaire est basée sur
□ modules
□ procédures
□ objets
3. un module est un ensemble de
□ procédure
□ sous programmes et des données
□ programmes
4. La meilleure façon de décrire les systèmes informatiques est de se fonder sur :
□ ce qu’ils font
□ les modules qu’ils manipulent
□ les objets qu’ils manipulent.
Cours Java 2024 Hassen Lazrag
QCM(2/4)
5. L’expérience a montré que :
□ les traitements sont ce qu’il y a de plus stable dans la vie d’un programme.
□ les données sont ce qu’il y a de plus stable dans la vie d’un programme.
□ il est intéressant d’architecturer le programme autour de ses traitements.
6. Quel est le plus ancien des langages orientés objets ?
□ SmallTalk
□ C++
□ Simula
7. Les langages objets ont été inventés
□ Au début des années 70
□ A la fin des années 70
□ A la fin des années 60
8. Java
□ Est un langage interprété
□ Est un langage compilé
□ Est un langage interprété et compilé
Cours Java 2024 Hassen Lazrag
QCM(3/4)
9. JRE est l’acronyme de
□ Java Run Time Execution
□ Java Run Time Environement
□ Java RunTime Entreprise
10. Sur la machine où doit s’exécuter un programme Java, nous avons besoin de
□ JDK+JRE
□ JRE seulement
□ JDK seulement
11. Java est un langage développé par
□ Hewlett-Packard
□ Sun Microsystems
□ Microsoft
□ Oracle
12. A propos de Java, on prétend que (3 réponses correctes)
□ Java est un langage portable
□ Java est un langage orienté objet.
□ Java est un langage propre à une machine
□ Java est un langage sécurisé
Cours Java 2024 Hassen Lazrag
QCM(4/4)
13. Quand un programme java est compilé, le fichier généré possède l'extension
□ jav
□ exe
□ class
□ java
14. Qu’est ce qui permet la portabilité de java
□ le JRE
□ la JVM
□ le JDK
15. Après compilation du fichier « [Link] », parmi les instructions suivantes, laquelle va
permettre de « l’exécuter » :
□ java Exame
□ javac examen
□ java [Link]
□ java examen
Cours Java 2024 Hassen Lazrag