Académique Documents
Professionnel Documents
Culture Documents
UML_GI2 S. KOULALI 1
Philosophie Objet
Pourquoi étudier la programmation objet (PO) ?
Simuler une réalité (modèle) avec différents niveau d'abstraction.
Pour concevoir et réaliser des logiciels complexes avec le minimum d'erreurs.
Favoriser le travail collaboratif sur des projets d'envergure.
Approche Client/Fournisseur et sécurité accrue.
UML_GI2 S. KOULALI 2
Domaines d'utilisation
Java est utilisé dans divers domaines tels que :
Les smartphone tournant sous Android supportent des applications écrites en
JAVA.
Big Data & recherche scientifique : Le framework Hadoop est entièrement
écrit en JAVA.
Les Systèmes d'information des entreprises pour la partie Facturation, Stock, .
. ..
La finance.
. . .
UML_GI2 S. KOULALI 3
UML_GI2 S. KOULALI 4
Java et les autres langages de
programmation
UML_GI2 S. KOULALI 5
Outils pour Développement JAVA
Java Development Kit Standard Edition (JDK SE)
http ://www.oracle.com/technetwork/java/javase/downloads/index.html
Éditeur de texte
Notepad++, bloc note, . . .
Gedit, vim, emacs, . . .
,...
UML_GI2 S. KOULALI 6
Ressources Bibliographique
https ://docs.oracle.com/javase/8/docs/api/
UML_GI2 S. KOULALI 7
Java : le choix d'une architecture
dynamique
Java est un langage moderne qui puise son inspiration de sources
diverses :
une syntaxe très proche du C/C++
une architecture dynamique avec un compilateur et une JVM
Java évolue régulièrement (nouvelle bibliothèque IHM dans JAVA5, lambda
calcul dans JAVA8. . .)
UML_GI2 S. KOULALI 8
Portabilité
Java est SE-indépendant, il est portable et s'exécute sur tout les SE sans modification du code
source.
UML_GI2 S. KOULALI 9
Caractéristiques
UML_GI2 S. KOULALI 10
Dynamique
Java est dynamique et s'adapte à un environnement évolutif.
Le support de l'allocation dynamique de la mémoire réduit les memory-leaks et booste les
performances.
UML_GI2 S. KOULALI 11
Concurrence
Java supporte la programmation concurrente ou des ensembles d'instructions
peuvent être exécutés en parallèle.
UML_GI2 S. KOULALI 12
Sécurité
UML_GI2 S. KOULALI 13
Robustesse
UML_GI2 S. KOULALI 14
Performances
UML_GI2 S. KOULALI 15
Programmation distribuée
UML_GI2 S. KOULALI 16
Différentes Plateformes Java
Java Micro Edition : Environnement Java destiné aux applications tournant sur
terminaux mobiles et embarqués (Téléphones portables, personal digital
assistants (PDAs), Imprimantes).
Java Standard Edition : Environnement Java pour le développement et la
déploiement d'applications sur des ordinateurs personnels et serveurs ainsi que
pour les systèmes embarqués avec forte exigences.
Java Entreprise Edition : Environnement Java riche pour le développement
d'application à l'échelle de l'entreprise. Développé avec la contribution d'experts
du monde industriel, commerciale et des organisations open source dans le
cadre du Java Community Process.
UML_GI2 S. KOULALI 17
La Java Virtual Machine (JVM)
JVM : Une spécification d'une machine abstraite qui fournit l'environnement
d'exécution du bytecode JAVA.
Le processeur physique ne peux exécuter que les programmes écrit en langage
binaire adéquat.
L'appellation JVM décrit les éléments suivants :
Une spécification : Un document fournit par ORACLE décrivant l'implémentation de la JVM.
Analogie : croquis/produit (UML, . . .)
Implémentation : un programme qui répond aux exigences mentionnés dans la spécification
de la JVM (Écrit en quel langage de programmation ?)
Instance d'exécution : Une instance de la JVM est crée et chargée en mémoire par le système
d'exploitation au besoin.
UML_GI2 S. KOULALI 18
Java Runtime Environment (JRE)
JRE représente l'environnement d'exécution du bytecode. Il
implémente la JVM et fournit toutes les bibliothèques de classes
utilisées par les programmes JAVA en cours d'exécution.
La JRE est un composant logiciel qui contient les fonctionnalités
nécessaires à l'exécution d'un programme JAVA.
UML_GI2 S. KOULALI 19
Composants JAVA SE
UML_GI2 S. KOULALI 20
Le Java Development Kit (JDK)
Le Java Development Kit (JDK) regroupe les outils pour compiler,
documenter et packager les programmes JAVA.
La machine virtuelle Java (JRE)
Le compilateur Java (javac)
Un générateur de documentation (javadoc)
Le désassembleur de chier .class (javap).
L'archiveur pour packager plusieurs chiers (jar)
. . .
JDK = JRE ⊕ Outils de développement.
UML_GI2 S. KOULALI 21
Java SE
UML_GI2 S. KOULALI 22
Composants de la Java SE
UML_GI2 S. KOULALI 23
La machine virtuelle Java (Suite)
UML_GI2 S. KOULALI 24
Le bytecode
Le code source Java
UML_GI2 S. KOULALI 25
Le compilateur et l'interpréteur java
Programme javac.exe
UML_GI2 S. KOULALI 26
Le bytecode
Le bytecode associé
UML_GI2 S. KOULALI 27
Arborescence de la jdk
Le choix du dossier est fournit lors de l'installation.
Dossier Contenu
jdk<version> Répertoire d'installation de la jdk
UML_GI2 S. KOULALI 28
Et l'open source
UML_GI2 S. KOULALI 29
Philosophie Objet
UML_GI2 S. KOULALI 30
Une classe, un main
En JAVA, l'unité élémentaire est la classe qui encapsule le code.
Les nom des classes commencent par une majuscule.
Un programme principal constitue le point d'entrée dans un logiciel complexe
avec de plusieurs classes.
UML_GI2 S. KOULALI 31
Une classe, un main : syntaxe
Signature du main :
public static void main(String[] args)
Achage :
System.out.println ("xxxxxxxxxxxxx") ;
UML_GI2 S. KOULALI 32
Compilation/Exécution
Compilation :
Vérication de la syntaxe, droits d'accès. . .
Génération du bytecode : MonPremierProgramme.class
Exécution :
UML_GI2 S. KOULALI 33
Philosophie
Décomposer un programme complexe en plusieurs unités (objets) en
respectant lors de leurs conception les principes de :
Réutilisabilité dans plusieurs programmes . . .
Sécurité : pour correspondre à la réalité et garantir une utilisation cohérente par d'autres
objets.
Simplicité : les objets en interaction n'exposent que ce qui est nécessaire.
UML_GI2 S. KOULALI 34
Encapsulation(Sécurité)
Nouvelle classe :
Etudiant.java
Construction : deux valeurs
entières pour initialiser le cne
et l'age.
Communication : dénir une
méthode pour observer
chaque donnée.
UML_GI2 S. KOULALI 35
Encapsulation(Suite)
Nouveau Type :)
int i ; Etudiant e ;
Construction d'un objet de type Etudiant ?
1. e = new Etudiant (123456 , 24) ;
Le "." permet d'accéder à l'interface de l'objet :
1. e . getAge ( ) ;
UML_GI2 S. KOULALI 36