SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
POO en Java
Ch. II
Vue d’ensemble
de la plate-forme Java
Prof. Hakim ALLALI
Licences EEA & RTT. Fév 2013
1. Introduction
2. Quelques chiffres et faits (2011)
3. Caractéristiques
4. La plateforme Java
5. Java : de l’édition à l’exécution
6. Le Java SE Development Kit
7. Java : évolution des versions
8. Java : les éditions
9. Génération de code exécutable dans les langages de programmation
10. Génération de code en java
11. Principe Machine Virtuelle
12. Différents modes de compilation
13. Avantages de la JVM pour Internet
14. Avantages/Inconvénients du bytecode
15. Exemple d’application: Mon premier programme en Java
PLAN
 Java est un langage de POO créé par les ingénieurs
de 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
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)
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
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
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
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
9
 Portable
Les 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
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
 Dynamique
Les classes Java peuvent être modifiées sans avoir à
modifier le programme qui les utilise.
Caractéristiques
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
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 Programming
Interface): ensemble de bibliothèques contenant des
classes et interfaces organisées en Packages.
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)
14
Java : de l’édition à l’exécution (2)
Remarque:
 La JVM est contenue dans un framework
d’exécution appelé JRE (Java Runtime
Environment)
 Elle est disponible pour plusieurs
systèmes d’exploitation (Microsoft
Windows, Solaris OS, Linux ou Mac OS)
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
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
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
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
19
Les principales éditions de Java sont:
 Java ME : Java Micro Edition
Prévu pour le développement d'applications embarquées
(assistants personnels et terminaux mobiles..)
 Java SE : Java Standard Edition
Destiné au développement d'applications pour ordinateurs
personnels
 Java EE : Java Entreprise Edition
Destiné à un usage professionnel avec la mise en oeuvre de
serveurs (serveurs d’applications et serveurs Web)
Java : les éditions
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
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?
22
Génération de code en java
23
Principe Machine Virtuelle
Différents modes de compilation
Code source
Compilation
Programme objet
Edition de lien
Programme.Exe
Code source
Compilation
Byte Code
Interprétation par
La JVM en mode byte code
(Traduit en code machine
et exécute instruction par
Instruction )
Code source
Compilation
Byte Code
Interprétation par
La JVM en mode JIT
(Traduit tout le programme
Byte Code en programme
machine puis l’exécute )
Natif Byte Code JIT
25
Avantages de la JVM pour Internet
Grâce à sa portabilité, le bytecode d’une classe
peut être chargé depuis une machine distante du
réseau, et exécutée par une JVM locale
La JVM fait de nombreuses vérifications sur le
bytecode avant son exécution pour s’assurer qu’il
ne va effectuer aucune action dangereuse
La 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
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
Fichier Bonjour.java Accolades délimitant le
début et la fin de la définition
de la class Bonjour
public class Bonjour
{
public static void main(String args[])
{
System.out.println("bonjour");
}
}
Accolades délimitant le début
et la fin de la méthode main
Les instructions se terminent
par des ;
Exemple d’application
27
Le nom de la classe et du fichier doivent être identiques
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
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
30
 De manière générale, dans tout programme autonome destiné
à être exécuté doit contenir une méthode particulière
nommée main() définie de la manière suivante:
 Le paramètre args de la méthode main() est un tableau
d’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 est
ré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 */
}
 Un fichier source peut contenir plusieurs classes mais
une seule doit être public (ici MonPremProg).
 Le nom du fichier source est identique au nom de la
classe 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
32
 Fichier: First.java
public class First
{
public static void main (String args [])
{
System.out.println ("Premier programme Java") ;
}
}
 Compilation: javac First.java
Cré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

Más contenido relacionado

La actualidad más candente

Introduction java
Introduction javaIntroduction java
Introduction javaFouad Root
 
Java 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchJava 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchTarek Halloul
 
Formation JAVA (1)
Formation JAVA (1)Formation JAVA (1)
Formation JAVA (1)Ahmed Charef
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework springAntoine Rey
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Eric SIBER
 
Environnement java
Environnement javaEnvironnement java
Environnement javaInes Ouaz
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsAntoine Rey
 
Programmation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimProgrammation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimLaurent Broudoux
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemeStéphane Traumat
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateInes Ouaz
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationAntoine Rey
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspectmeriem sari
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 

La actualidad más candente (20)

Introduction java
Introduction javaIntroduction java
Introduction java
 
J2EE vs .NET
J2EE vs .NETJ2EE vs .NET
J2EE vs .NET
 
Java 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchJava 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuch
 
Formation JAVA (1)
Formation JAVA (1)Formation JAVA (1)
Formation JAVA (1)
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
Environnement java
Environnement javaEnvironnement java
Environnement java
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 
Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du temps
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Programmation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimProgrammation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - Ensim
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & Hibernate
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspect
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 

Similar a Chap 02 poo en java

Similar a Chap 02 poo en java (20)

Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'art
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Objet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeObjet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonome
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
 
Base11
Base11Base11
Base11
 
JAVA Chapitre2
JAVA Chapitre2JAVA Chapitre2
JAVA Chapitre2
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Java j2ee
Java j2eeJava j2ee
Java j2ee
 
Javaoop
JavaoopJavaoop
Javaoop
 
1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
Introduction à Java
Introduction à JavaIntroduction à Java
Introduction à Java
 
Lyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenantLyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenant
 
I le langage java d'una manière avancée introduction
I  le langage java d'una manière avancée introductionI  le langage java d'una manière avancée introduction
I le langage java d'una manière avancée introduction
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdf
 
Chap1_PresentationJava.pdf
Chap1_PresentationJava.pdfChap1_PresentationJava.pdf
Chap1_PresentationJava.pdf
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018
 

Más de Yassine Badri

Théorie de normalisation-base de données
Théorie de normalisation-base de donnéesThéorie de normalisation-base de données
Théorie de normalisation-base de donnéesYassine Badri
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationellesYassine Badri
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du meriseYassine Badri
 
La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesYassine Badri
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours Yassine Badri
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentationYassine Badri
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock Yassine Badri
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php Yassine Badri
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock Yassine Badri
 
cours base de données
cours base de donnéescours base de données
cours base de donnéesYassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine Badri
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Yassine Badri
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2Yassine Badri
 

Más de Yassine Badri (20)

Théorie de normalisation-base de données
Théorie de normalisation-base de donnéesThéorie de normalisation-base de données
Théorie de normalisation-base de données
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationelles
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de données
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock
 
cours base de données
cours base de donnéescours base de données
cours base de données
 
Cours php
Cours php Cours php
Cours php
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2
 

Último

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 

Último (10)

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 

Chap 02 poo en java

  • 1. POO en Java Ch. II Vue d’ensemble de la plate-forme Java Prof. Hakim ALLALI Licences EEA & RTT. Fév 2013
  • 2. 1. Introduction 2. Quelques chiffres et faits (2011) 3. Caractéristiques 4. La plateforme Java 5. Java : de l’édition à l’exécution 6. Le Java SE Development Kit 7. Java : évolution des versions 8. Java : les éditions 9. Génération de code exécutable dans les langages de programmation 10. Génération de code en java 11. Principe Machine Virtuelle 12. Différents modes de compilation 13. Avantages de la JVM pour Internet 14. Avantages/Inconvénients du bytecode 15. Exemple d’application: Mon premier programme en Java PLAN
  • 3.  Java est un langage de POO créé par les ingénieurs de 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
  • 4. 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)
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 9  Portable Les 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
  • 10. 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  Dynamique Les classes Java peuvent être modifiées sans avoir à modifier le programme qui les utilise. Caractéristiques
  • 11. 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
  • 12. 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 Programming Interface): ensemble de bibliothèques contenant des classes et interfaces organisées en Packages.
  • 13. 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)
  • 14. 14 Java : de l’édition à l’exécution (2) Remarque:  La JVM est contenue dans un framework d’exécution appelé JRE (Java Runtime Environment)  Elle est disponible pour plusieurs systèmes d’exploitation (Microsoft Windows, Solaris OS, Linux ou Mac OS)
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 19 Les principales éditions de Java sont:  Java ME : Java Micro Edition Prévu pour le développement d'applications embarquées (assistants personnels et terminaux mobiles..)  Java SE : Java Standard Edition Destiné au développement d'applications pour ordinateurs personnels  Java EE : Java Entreprise Edition Destiné à un usage professionnel avec la mise en oeuvre de serveurs (serveurs d’applications et serveurs Web) Java : les éditions
  • 20. 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
  • 21. 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?
  • 24. Différents modes de compilation Code source Compilation Programme objet Edition de lien Programme.Exe Code source Compilation Byte Code Interprétation par La JVM en mode byte code (Traduit en code machine et exécute instruction par Instruction ) Code source Compilation Byte Code Interprétation par La JVM en mode JIT (Traduit tout le programme Byte Code en programme machine puis l’exécute ) Natif Byte Code JIT
  • 25. 25 Avantages de la JVM pour Internet Grâce à sa portabilité, le bytecode d’une classe peut être chargé depuis une machine distante du réseau, et exécutée par une JVM locale La JVM fait de nombreuses vérifications sur le bytecode avant son exécution pour s’assurer qu’il ne va effectuer aucune action dangereuse La 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
  • 26. 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
  • 27. Fichier Bonjour.java Accolades délimitant le début et la fin de la définition de la class Bonjour public class Bonjour { public static void main(String args[]) { System.out.println("bonjour"); } } Accolades délimitant le début et la fin de la méthode main Les instructions se terminent par des ; Exemple d’application 27 Le nom de la classe et du fichier doivent être identiques
  • 28. 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
  • 29. 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
  • 30. 30  De manière générale, dans tout programme autonome destiné à être exécuté doit contenir une méthode particulière nommée main() définie de la manière suivante:  Le paramètre args de la méthode main() est un tableau d’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 est ré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 */ }
  • 31.  Un fichier source peut contenir plusieurs classes mais une seule doit être public (ici MonPremProg).  Le nom du fichier source est identique au nom de la classe 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
  • 32. 32  Fichier: First.java public class First { public static void main (String args []) { System.out.println ("Premier programme Java") ; } }  Compilation: javac First.java Cré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