0% ont trouvé ce document utile (0 vote)
1K vues36 pages

Chapitre 1-Java I

Transféré par

Elmehdi Bensaid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1K vues36 pages

Chapitre 1-Java I

Transféré par

Elmehdi Bensaid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 36

Programmation JAVA I

Chapitre N°1
La plateforme Java 2 Standard
Edition : J2SE
Par SAIR ABDELLAH
[email protected]
Qu’est ce que Java?
 Langage portable grâce à l’exécution par une machine
virtuelle JVM « Write once, run everywhere » Indépendant
des plates-formes.
 Difficile à atteindre: « Write once, debug everywhere».

 Simple, orienté objet


 Syntaxe très proche du langage C/C++.

 Pas de gestion de la mémoire de la part du concepteur.

 Tout est objet sauf les types primitifs.

 Héritage simple: épuration par rapport à C++.


Avantages de Java?
 Sûr
– fortement typé
– vérifications au chargement des classes et durant
leur exécution.
 Dynamique et distribué
 Classes chargées en fonction des besoins (le plus
souvent par le réseau).
 Permet le parallélisme de manière simple: facilités
pour distribuer les traitements entre plusieurs
machines.
Une brève histoire de Java
 Inventé par Sun 1990: répondre à 5 objectifs
 utiliser une méthodologie orientée objet,
 permettre à un même programme d'être exécuté sur
plusieurs systèmes d'exploitation différents,
 pouvoir utiliser de manière native les réseaux
informatiques,
 pouvoir exécuter du code distant de manière sûre,
 être facile à utiliser et posséder les points forts des
langages de programmation orientés objet comme le
C++.
Différentes versions
 De nombreuses versions de Java depuis 1995
 Java 1.0 en 1995

 Java 1.1 en 1996

 Java 1.2 en 1999 (Java 2, version 1.2)

 Java 1.3 en 2001 (Java 2, version 1.3)

 Java 1.4 en 2002 (Java 2, version 1.4)

 Java 5 en 2004

 Java 6 en 2006 celle que nous utiliserons dans ce cours

 Java 7 en 2011

 Java 8 en 2015

 Évolution très rapide et succès du langage


 Une certaine maturité atteinte avec Java 2
 Mais des problèmes de compatibilité existaient
 entre les versions 1.1 et 1.2/1.3/1.4

 avec certains navigateurs


Editions
 IL existe trois éditions :

 J2SE: Java 2 standard Edition; JDK = J2SE


Development Kit, aussi appelé SDK (Software
Development Kit) pour certaines versions.

 J2EE : Enterprise Edition qui ajoute les API pour écrire


des applications installées sur les serveurs dans des
applications distribuées : servlet, JSP, EJB,…

 J2ME : Micro Edition, version allégée de Java pour


écrire des programmes embarqués (cartes à puce/Java
card, téléphones portables,…)
Caractéristiques du langage Java
Caractéristiques du langage Java
(1)
 Simple
 Apprentissage facile

 faible nombre de mots-clés

 simplifications des fonctionnalités essentielles

 Développeurs opérationnels rapidement

 Familier
 Syntaxe proche de celle de C/C++

8
Caractéristiques du langage Java
 Orienté objet :
(2)
 Java ne permet d'utiliser que des objets (hors les types
de base)
 Java est un langage objet de la famille des langages de
classe comme C++ ou SmallTalk
 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
 Sûr
 Seul le bytecode est transmis, et «vérifié» par
l’interpréteur
 Impossibilité d’accéder à des fonctions globales ou des
ressources arbitraires du système
9
Caractéristiques du langage Java
(3)
 Fiable
 Gestion automatique de la mémoire
(ramasse-miette ou "garbage collector")
 Gestion des exceptions
 Sources d'erreurs limitées
 typage fort,

 pas d'héritage multiple,

 pas de manipulations de pointeurs, etc.

 Vérifications faites par le compilateur facilitant une


plus grande rigueur du code

10
Caractéristiques du langage Java
(4)
Java est indépendant de l'architecture
 Le bytecode généré par le compilateur est
indépendant de toute architecture. Toute application
peut donc tourner sur une plate-forme implémentant
une machine virtuelle Java
« Ecrire une fois, exécuter partout »
Java est multi-tâches
 Exécution de plusieurs processus effectuant chacun
une tâche différente
 Mécanismes de synchronisation
 Fonctionnement sur des machines multiprocesseurs
11
Java, un langage de programmation

 Applications Java : programmes autonomes, "stand-


alone"
 Applets (mini-programmes) : Programmes exécutables
uniquement par l'intermédiaire d'une autre application :
 navigateur web : Netscape, Internet explorer,

Hotjava.
 application spécifique : Appletviewer.

 Java est souvent considéré comme étant uniquement


un langage pour écrire des applets alors que c'est aussi
un vrai langage de programmation
 Java est souvent confondu avec le langage de script
Javascript auquel il n'est en aucune manière apparenté
12
Java, un langage indépendant?
(1)
 Java est un langage interprété
 La compilation d'un programme Java crée du
pseudo-code portable : le "byte-code"
 Sur n'importe quelle plate-forme, une machine
virtuelle Java peut interpréter le pseudo-code afin
qu'il soit exécuté
 Les machines virtuelles Java peuvent être
 des interpréteurs de byte-code indépendants (pour
exécuter les programmes Java)
 contenues au sein d'un navigateur
(pour exécuter des applets Java)

13
Java, un langage indépendant?
(2)
 Avantages :
 Portabilité

 Des machines virtuelles Java existent pour de

nombreuses plates-formes dont : Linux, Windows,


MacOS
 Développement plus rapide

 courte étape de compilation pour obtenir le byte-

code,
 pas d'édition de liens,

 déboguagge plus aisé,

 Le byte-code est plus compact que les

exécutables
 pour voyager sur les réseaux.
14
Java, un langage indépendant?
(3)
 Inconvénients :
 Nécessite l’installation d’un interpréteur pour pouvoir
exécuter un programme Java
 L'interprétation du code ralentit l'exécution
 Les applications ne bénéficient que du dénominateur
commun des différentes plate-formes
 limitation, par exemple, des interfaces graphiques

 Gestion gourmande de la mémoire


 Impossibilité d’opérations de « bas niveau » liées au
matériel
15
Langage compilé
Etapes qui ont lieu avant l'exécution pour un langage compilé
comme C++

Fichier
de Librairies
code

Programme
Compilation Code objet Edition de liens
exécutable

Autres code objet


Fichier
d'entête

16
Langage interprété
Cas de Java
Avant exécution Exécution

Autres byte code

Fichier
Byte code Machine virtuelle
de code Compilation
Java (JVM)
Java
javac MaClasse.class java
MaClasse.java

17
L’API de Java (1)
 Java fournit de nombreuses librairies de classes
remplissant des fonctionnalités très diverses : c'est
l'API Java
 API (Application and Programming Interface

/Interface pour la programmation d'applications) :


Ensemble de bibliothèques permettant une
programmation plus aisée car les fonctions
deviennent indépendantes du matériel.
 Ces classes sont regroupées, par catégories, en
paquetages (ou "packages").

18
L’API de Java (2)
 Les principaux paquetages
 java.util : structures de données classiques

 java.io : entrées / sorties

 java.lang : chaînes de caractères, interaction avec

l'OS, threads
 java.applet : les applets sur le web

 java.awt : interfaces graphiques, images et

dessins.
 javax.swing : package récent proposant des

composants « légers » pour la création


d’interfaces graphiques.
19
L’API de Java (3)
 Les principaux paquetages
 java.net : sockets, URL

 java.rmi : Remote Method Invocation (pas abordé

dans ce cours)
 java.sql : fournit le package JDBC (pas abordé

dans ce cours)

20
L’API de Java (4)
 La documentation de Java est standard, que ce soit
pour les classes de l'API ou pour les classes
utilisateur
 possibilité de génération automatique avec l’outil

Javadoc.
 Elle est au format HTML.
 intérêt de l'hypertexte pour naviguer dans la

documentation

21
L’API de Java (5)
 Pour chaque classe, il y a une page HTML contenant :
 la hiérarchie d'héritage de la classe,

 une description de la classe et son but général,

 la liste des attributs de la classe (locaux et hérités),

 la liste des constructeurs de la classe (locaux et

hérités),
 la liste des méthodes de la classe (locaux et hérités),

 puis, chacune de ces trois dernières listes, avec la

description détaillée de chaque élément.

22
L’API de Java (6)
 Où trouver les informations sur les classes de l’API
 sous le répertoire jdk1.x/docs/api dans le JDK

 les documentations de l’API se téléchargent et

s’installent (en général) dans le répertoire dans


lequel on installe java.
Par exemple si vous avez installer Java dans le
répertoire D:/Apps/jdk1.4/, vous décompresser le
fichier zip contenant les documentations dans ce
répertoire.
Les docs de l’API se trouveront alors sous :
D:/Apps/jdk1.4/docs/api/index.html
 Sur le site de Sun, on peut la retrouver à
http://java.sun.com/docs/index.html.
23
L’API de Java (7)

24
Outil de développement : le
JDK
 Environnement de développement fourni par Sun
 JDK signifie Java Development Kit (Kit de développement
Java).
 Il contient :
 les classes de base de l'API java (plusieurs centaines),

 la documentation au format HTML

 le compilateur : javac

 la JVM (machine virtuelle) : java

 le visualiseur d'applets : appletviewer

 le générateur de documentation : javadoc

 etc.

25
Ce que contient le JDK
 Les programmes nécessaire au développement java sont
placés dans le répertoire
C:\Program Files\Java\jdk1.8.0_131\bin à savoir:
 javac.exe : Compilateur java.
 java.exe : Interpréteur du bytecode java.
 appletviewer.exe : Pour tester les applets java.
 Jdb.exe : Débogueur java.
 Javap.exe : désassembleur du bytecode.
 Javadoc.exe : Générer la documentation de vos programmes
java.
 Javah.exe : Permet de lier des programmes Java avec des
méthodes natives, écrites dans un autre langage et dépendant
du système.
 jar.exe : Permet de compresser les classes Java ainsi que tous
les fichiers nécessaires à l'exécution d'un programme
(graphiques, sons, etc.). Il permet en particulier d'optimiser le
chargement des applets sur Internet.
 jarsigner.exe : Un utilitaire permettant de signer les fichiers
archives produits par jar.exe.
Java, un langage novateur?
 Java n'est pas un langage novateur : il a puisé ses
concepts dans d'autres langages existants et sa
syntaxe s’inspire de celle du C++.
 Cette philosophie permet à Java
 De ne pas dérouter ses utilisateurs en faisant
"presque comme ... mais pas tout à fait"
 D'utiliser des idées, concepts et techniques qui ont
fait leurs preuves et que les programmeurs savent
utiliser
 En fait, Java a su faire une synthèse efficace de
bonnes idées issues de sources d'inspiration variées
 Smalltalk, C++, Ada, etc.

27
Syntaxe du langage Java
Les commentaires
 /* commentaire sur une ou plusieurs lignes */
 Identiques à ceux existant dans le langage

C
 // commentaire de fin de ligne
 Identiques à ceux existant en C++

 /** commentaire d'explication */


 Les commentaires d'explication se placent

généralement juste avant une déclaration


(d'attribut ou de méthode)
 Ils sont récupérés par l'utilitaire javadoc et

inclus dans la documentation ainsi générée.


29
Instructions, blocs et blancs
 Les instructions Java se terminent par un ;
 Les blocs sont délimités par :
{ pour le début de bloc
} pour la fin du bloc
Un bloc permet de définir un regroupement
d’instructions. La définition d’une classe ou d’une
méthode se fait dans un bloc.
 Les espaces, tabulations, sauts de ligne sont
autorisés. Cela permet de présenter un code plus
lisible.

30
Point d’entrée d’un programme
Java
 Pour pouvoir faire un programme exécutable il faut
toujours une classe qui contienne une méthode
particulière, la méthode « main »
 c’est le point d’entrée dans le programme : le

microprocesseur sait qu’il va commencer à


exécuter les instructions à partir de cet endroit

public static void main(String arg[ ])


{
…/…
}

31
Exemple (1)
La classe est l’unité de
Fichier Bonjour.java base de nos programmes.
Le mot clé en Java pour
public class Bonjour définir une classe est
class
{ //Accolade débutant la classe Bonjour
public static void main(String args[])
{ //Accolade débutant la méthode main
/* Pour l’instant juste une instruction */
System.out.println(“bonjour”);
} //Accolade fermant la méthode main
} //Accolade fermant la classe Bonjour

32
Exemple (2)
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[])
{
Accolades délimitant le début
System.out.println(“bonjour”); et la fin de la méthode main

}
} Les instructions se terminent
par des ;

33
Exemple (3)
Fichier Bonjour.java Une méthode peut recevoir
des paramètres. Ici la méthode
public class Bonjour main reçoit le paramètre args
qui est un tableau de chaîne
{ de caractères.

public static void main(String args[])


{
System.out.println(“bonjour”);
}
}

34
Compilation et exécution (1)
Le nom du fichier est nécessairement
Fichier Bonjour.java celui de la classe avec l’extension
.java en plus. Java est sensible à la
casse des lettres.
Compilation en bytecode
java dans une console DOS:
javac Bonjour.java public class Bonjour
Génère un fichier
Bonjour.class {
Exécution du programme
(toujours depuis la console public static void main(String[] args)
DOS) sur la JVM :
java Bonjour {
Affichage de « bonjour »
dans la console System.out.println(“bonjour”);
}
}

35
Compilation et exécution (2)
 Pour résumer, dans une console DOS, si j’ai un fichier
Bonjour.java pour la classe Bonjour :
 javac Bonjour.java

 Compilation en bytecode java

 Indication des erreurs de syntaxe éventuelles

 Génération d’un fichier Bonjour.class si pas

d’erreurs
 java Bonjour

 Java est la machine virtuelle

 Exécution du bytecode

 Nécessité de la méthode main, qui est le point

d’entrée dans le programme


36

Vous aimerez peut-être aussi