chap 02 poo en java
TRANSCRIPT
![Page 1: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/1.jpg)
POO en Java
Ch. II
Vue d’ensemble de la plate-forme Java
Prof. Hakim ALLALILicences EEA & RTT. Fév 2013
![Page 2: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/2.jpg)
1. Introduction2. Quelques chiffres et faits (2011) 3. Caractéristiques4. La plateforme Java5. Java : de l’édition à l’exécution6. Le Java SE Development Kit7. Java : évolution des versions8. Java : les éditions9. Génération de code exécutable dans les langages de programmation10. Génération de code en java11. Principe Machine Virtuelle12. Différents modes de compilation13. Avantages de la JVM pour Internet14. Avantages/Inconvénients du bytecode15. Exemple d’application: Mon premier programme en Java
PLAN
![Page 3: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/3.jpg)
Java est un langage de POO créé par les ingénieursde la société SUN Microsystems en 1995.
SUN a été rachetée par Oracle en 2009.
Java est présent dans de très nombreux domaines d’application des serveurs d’applications aux téléphones portables, cartes à puces et des systèmes de diffusion télévisuelle.
Exemples d’applications : jeux enlignes, images 3D, solutions de banques, etc…
Introduction
![Page 4: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/4.jpg)
4
97% des machines d'entreprises ont une JVM (Java Virtual Machine) installée
Java est téléchargé plus d'un milliard de fois chaque année
Il y a plus de 9 millions de développeurs Java dans le monde
Java est un des langages les plus utilisé dans le monde
Plus de 3 milliards d'appareils mobiles peuvent mettre en oeuvre Java
Plus de 1,4 milliards de cartes à puce utilisant Java sont produites chaque année
Quelques chiffres et faits (2011)
![Page 5: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/5.jpg)
5
Java est devenu l’un des langages de programmation les plus utilisés Des études comparatives de développements montrent une diminution
du coût de développement de 30 à 35 %
Caractéristiques
![Page 6: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/6.jpg)
6
Définition de SUN
Java est un langage: 1)simple, 2)orienté objet, 3)distribué, 4)robuste, 5)sûr, 6)indépendant des architectures matérielles,7)portable, 8)de haute performance, 9)multithread 10)dynamique
Caractéristiques
![Page 7: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/7.jpg)
7
Simple Apprentissage facile Inspiré du C++, Fortran, Lisp, Smalltalk Pas de pointeur; pas de surcharge d'opérateurs; pas
d'héritage multiple Présence d'un «garbage collector» (ramasse-miettes)
Orienté objet Les grandes idées reprises sont : encapsulation, dualité
classe /instance, attribut, méthode / message, visibilité, dualité interface/implémentation, héritage simple, redéfinition de méthodes, polymorphisme
Un des intérêts de Java est de disposer de nombreuses classes déjà faites. Toute ligne de code JAVA se trouve obligatoirement dans une méthode à l’intérieur d’une classe
Caractéristiques
![Page 8: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/8.jpg)
8
DistribuéLes fonctions d'accès au réseau et les protocoles internet les plus courants sont intégrés.
Robuste Typage des données très strict Pas de pointeur
Sûr Java n’est pas compilé à destination d’un processeur
particulier mais en « byte code » qui pourra être ensuite interprété sur une machine virtuelle Java (JVM = Java Virtual Machine). Le "byte code" généré est vérifié par les interprétateurs java avant exécution.
Un débordement de tableau déclenchera automatiquement une exception.
L’absence d’arithmétique de pointeur évite les malversations.
Caractéristiques
![Page 9: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/9.jpg)
9
PortableLes types de données sont indépendants de la plateforme (par exemple les types numériques sont définis indépendamment du type de plateforme sur laquelle le byte code sera interprété).
Haute performance Java est un langage pseudo interprété Techniques de "Just in Time" (JIT) améliorent ces
performances
Caractéristiques
![Page 10: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/10.jpg)
10
Multi thread Une application peut être décomposée en unités
d'exécution fonctionnant simultanément La gestion des multi-threads est intégrée dans le
langage et dans la Machine Virtuelle
DynamiqueLes classes Java peuvent être modifiées sans avoir à modifier le programme qui les utilise.
Caractéristiques
![Page 11: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/11.jpg)
11
Une plateforme est un environnement matériel et/ou logiciel dans lequel un programme tourne.
La plupart des plateformes peuvent être décrites comme une combinaison du système d’exploitation et du matériel sous-jacent.
La plateforme Java est une plateforme de développement purement logiciel qui tourne sur d’autres plateformes basées sur le matériel.
La plateforme Java
![Page 12: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/12.jpg)
12
La plateforme Java
La plateforme Java a deux composants :
La Machine Virtuelle Java (Java Virtual Machine): programme permettant d'interpréter et d'exécuter le bytecode Java (proche du langage machine).
L’API Java (Java Application ProgrammingInterface): ensemble de bibliothèques contenant des classes et interfaces organisées en Packages.
![Page 13: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/13.jpg)
13
Code source : fichier texte avec extension .java
Compilation avec javac: fichier avec extension .class
Contenu : code intermédiaire bytecode indépendant de toute plateforme
Exécution : bytecode est traduit en code natif, par la machine virtuelle java, selon le système d’exploitation
Java : de l’édition à l’exécution (1)
![Page 14: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/14.jpg)
14
Java : de l’édition à l’exécution (2)
Remarque:
La JVM est contenue dans un frameworkd’exécution appelé JRE (Java RuntimeEnvironment)
Elle est disponible pour plusieurs systèmes d’exploitation (Microsoft Windows, Solaris OS, Linux ou Mac OS)
![Page 15: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/15.jpg)
15
Le Java SE Development Kit
Pour exécuter une application développée avec Java, il faut télécharger le JRE
Cependant, pour les développeurs il faut télécharger le kit de développement Java (JDK)
Le JDK est le kit de développement de référence, distribué gratuitement sur Internet par Sun
La version courante du JDK est JDK SE 7 Update1
![Page 16: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/16.jpg)
16
Le Java SE Development Kit
Le JDK SE est composé d'un certain nombre d'outils: Javac : C'est le compilateur Java Java : Exécute le ou les fichiers compilés par Javac AppletViewer : Ce programme permet d'exécuter
une Applet Java sans nécessité d'utiliser un navigateur web
Javadoc : Outil permettant de construire, à partir des commentaires insérés dans des sources Java, une documentation HTML
Le JDK contient aussi le JRE
Des environnements de développement: http://www.eclipse.org http://www.netbeans.org
![Page 17: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/17.jpg)
17
JDK 1.0 (23 janvier 1996 - 211 classes et interfaces)— Version initiale
JDK 1.1 (19 février 1997 - 477 classes et interfaces)— De nombreux ajouts
J2SE 1.2 (9 décembre 1998 - 1524 classes et interfaces)— Nom de code Playground
Remarque : Cette version et les suivantes jusque J2SE 5.0 sont rebaptisées Java2 et la version nommée J2SE remplace JDK pour distinguer la plateforme de base de la version J2EE et J2ME
J2SE 1.3 (8 mai 2000 - 1840 classes et interfaces) — Nom de code Kestre
J2SE 1.4 (6 février 2002 - 2723 classes et interfaces)— Nom de code Merlin
Java : évolution des versions
![Page 18: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/18.jpg)
18
J2SE 5.0 (30 septembre 2004 - 3270 classes et interfaces) — Nom de code Tiger
Remarque : initialement numérotée 1.5, qui est toujours utilisé comme numéro de version interne
Java SE 6 (12 décembre 2006 - 3777 classes et interfaces) — Nom de code Mustang
Remarque : Avec cette version, Sun remplace le nom J2SE par Java SE et supprime le .0 au numéro de version
Java SE 7 (28 juillet 2011 - 4024 classes et interfaces) — Nom de code Dolphin
C’est une version OpenSource et sous l’ère Oracle.
Java SE 8 (version prévue pour cette année 2013)
Java : évolution des versions
![Page 19: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/19.jpg)
19
Les principales éditions de Java sont:
Java ME : Java Micro EditionPrévu pour le développement d'applications embarquées (assistants personnels et terminaux mobiles..)
Java SE : Java Standard EditionDestiné au développement d'applications pour ordinateurs personnels
Java EE : Java Entreprise EditionDestiné à un usage professionnel avec la mise en oeuvre de serveurs (serveurs d’applications et serveurs Web)
Java : les éditions
![Page 20: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/20.jpg)
20
Le code est généré par un compilateur en plusieurs étapes :
Vérification syntaxique.
Vérification sémantique (typage).
Production de code dans un langage plus proche de la machine.
Production de « briques » de code assemblables.
Génération de code exécutable dans les langages de programmation
![Page 21: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/21.jpg)
21
Génération de code exécutable dans les langages de programmation
Avantages/inconvénients du code natif Rapidité d’exécution Nécessité de recompiler lors du portage d’un logiciel sur
une autre architecture/système d’exploitation Choix de la distribution du logiciel : source ou binaire?
![Page 22: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/22.jpg)
22
Génération de code en java
![Page 23: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/23.jpg)
23
Principe Machine Virtuelle
![Page 24: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/24.jpg)
Différents modes de compilation
Code source
Compilation
Programme objet
Edition de lien
Programme.Exe
Code source
Compilation
Byte Code
Interprétation parLa JVM en mode byte code(Traduit en code machineet exécute instruction par
Instruction )
Code source
Compilation
Byte Code
Interprétation parLa JVM en mode JIT
(Traduit tout le programmeByte Code en programmemachine puis l’exécute )
Natif Byte Code JIT
![Page 25: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/25.jpg)
25
Avantages de la JVM pour Internet
Grâce à sa portabilité, le bytecode d’une classepeut être chargé depuis une machine distante duréseau, et exécutée par une JVM localeLa JVM fait de nombreuses vérifications sur lebytecode avant son exécution pour s’assurer qu’ilne va effectuer aucune action dangereuseLa JVM apporte donc: de la souplesse pour le chargement du code à exécuter
mais aussi de la sécurité pour l’exécution de ce code
![Page 26: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/26.jpg)
26
Code portable au niveau binaire
Moins efficace que du code natif (mais compensé par la technologie JIT permettant de ne traduire qu’une seule fois en code natif les instructions qui sont exécutées)
Avantages/Inconvénients du bytecode
![Page 27: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/27.jpg)
Fichier Bonjour.java Accolades délimitant ledébut et la fin de la définitionde la class Bonjourpublic class Bonjour
{
public static void main(String args[])
{
System.out.println("bonjour");
}
}
Accolades délimitant le débutet la fin de la méthode main
Les instructions se terminentpar des ;
Exemple d’application
27
Le nom de la classe et du fichier doivent être identiques
![Page 28: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/28.jpg)
Mon premier programme en Java
Considérons le code source suivant:
public class MonPremProg {public static void main(String args[]) {
System.out.println("Bonjour: mon premier programme Java" );}
}
Important:1. Ce code doit être sauvegardé obligatoirement dans le Fichier
source nommé « MonPremProg.java »2. Une classe exécutable doit posséder une méthode ayant la
signature public static void main(String[] args).
28
![Page 29: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/29.jpg)
Dans le cas de l’environnement JDK de SUN. Pour compiler il suffit d’utiliser la commande javac :
javac MonPremProg.java
Pour exécuter, il suffira d’utiliser la commande:java MonPremProg
qui interprète le bytecode de la méthode main()de la classe MonPremProg
Mon premier programme en Java
L’exécution du programme MonPremProg affiche à l’écran,comme résultat, la chaîne de caractères:
Bonjour: mon premier programme Java
grâce à l’instruction:System.out.println ("Bonjour: mon premier programme Java");
29
![Page 30: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/30.jpg)
30
De manière générale, dans tout programme autonome destinéà être exécuté doit contenir une méthode particulièrenommée main() définie de la manière suivante:
Le paramètre args de la méthode main() est un tableaud’objets de type String. Il n’est pas utilisé mais, il est exigépar le compilateur Java.
La classe contenant la méthode main() doit obligatoirementêtre public afin que la machine virtuelle y accès. Dans l’exemple, le contenu de la classe MonPremProg estréduit à la définition d’une méthode main().
Mon premier programme en Java
public static void main(String args[]) {/* corps de la méthode */
}
![Page 31: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/31.jpg)
Un fichier source peut contenir plusieurs classes maisune seule doit être public (ici MonPremProg).
Le nom du fichier source est identique au nom de laclasse publique qu'il contient, suivi du suffixe .java,dans l’exemple MonPremProg.java
Mon premier programme en Java
31
Java est sensible à la casse: NomClasse ≠ Nomclasse
![Page 32: Chap 02 poo en java](https://reader033.vdocuments.mx/reader033/viewer/2022042615/55ae5aba1a28abe47d8b458f/html5/thumbnails/32.jpg)
32
Fichier: First.javapublic class First{
public static void main (String args []){
System.out.println ("Premier programme Java") ;}
}
Compilation: javac First.javaCréation de First.class
Exécution: java First
Attention !!!1. Le nom de la classe et du fichier doivent être identiques.2. Java est sensible à la casse Bonjour ≠ bonjour
Exemple (1) d’application