Académique Documents
Professionnel Documents
Culture Documents
Université de Sousse
Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
Département : Informatique
A.U: 2022-2023
Le langage Java
➢Le langage java est crée en 1995 par la société Sun Microsystems.
➢Orienté objet
➢Fortement typé:
• Les types sont d’une part fournis par le langage, mais également par la définition des clases,
➢Simple:
• La libération d’espace inutilisé est faite avec le « Garbage collector »: les objets non référencés sont
automatiquement supprimés de la mémoire dès que la mémoire disponible devient faible.
1
13/02/2023
Le langage Java
➢Modulaire: on peut écrire des portions de code générique, c-à-d utilisables par plusieurs applications.
➢Portable et multiplateformes :
• le code est indépendant de la machine, un même programme compilé peut s’exécuter sur différents
environnements.
• Portable grâce à l’exécution par une machine virtuelle « write once, run everywhere),
➢Multi-tâches
• Java est un langage qui permet d'exécuter plusieurs processus au même temps (multithread)
➔ En contrepartie; les applications java ont le défaut d’ être plus lentes à l’exécution que des
applications programmées en C par exemple.
Le langage Java
➢Les plateformes java permettant le développement:
✓ Des application Desktop.
✓ Des applets java.
✓ Des applications web.
✓ Des application mobile.
✓ Des applications embarqués.
2
13/02/2023
➢C++ prend en charge l’héritage multiple et Java ne prend pas en charge l’héritage
multiple par classe.
3
13/02/2023
Plateforme Java
Pour développer et exécuter des programmes écrits en langage java indépendants de tout processeur et de tout
système d’exploitation, on a donc besoin:
➢La JVM et des APIs (Application Programming Interfaces) regroupées dans une plateforme:
✓ Java SE (Java Platform, Standard Edition): pour des applications classiques , desktop
✓ Java EE (Java Platform, Entreprise Edition): pour développer des applications serveur, web services, etc,…
✓ Java ME (Java Platform, Micro Edition): J2ME pour les applications embarquées, PDA, téléphones, etc,…
✓ JavaFX plate-forme pour créer des applications Internet riches en utilisant un API d’interface utilisateur légère.
Elles utilisent des moteurs graphiques et multimédias à accélération matérielle pour tirer parti de clients plus
performants et d’une apparence moderne ainsi que d’API de haut niveau pour se connecter aux sources de
données en réseau.
Plateformes Java
4
13/02/2023
JDK et JRE
•JRE (Java Runtime Environment) est la « machine virtuelle ». L’applet, le Javascript et
l’application de bureau utilisent le JRE pour le travail sur machine.
•JDK est une extension du JRE : contient la machine virtuelle et le kit pour développer
une nouvelle application, en particulier le compilateur (javac) en fait partie.
✓ Le kit de développement java JDK est téléchargeable gratuitement à partir du site oracle
https://www.oracle.com/java/
5
13/02/2023
6
13/02/2023
✓ JDevlopper de Oracle.
✓ JBuilder de Borland.
✓ Netbeans de Sun.
7
13/02/2023
HelloWorld.java
Le Langage Java
Mon premier programme Java (pas très objet…)
➢Créer et ecrire la classe HelloWorld.java
Le code de la classe doit être enregistré dans un Tout code java doit être défini à l'intérieur
fichier de même nom (casse comprise) que la classe d'une classe
HelloWorld.java
8
13/02/2023
Le Langage Java
Mon premier programme Java
➢Un programmeur Java écrit son code source, sous la forme de classes, dans des fichiers dont
l’extension est .java.
➢Ce code source est alors compilé par le compilateur javac en un langage appelé bytecode et
enregistre le résultat dans un fichier dont l’extension est .class.
➢Le bytecode ainsi obtenu n’est pas directement utilisable. Il doit être interprété par la machine
virtuelle de Java qui transforme alors le code compilé en code machine compréhensible par le
système d’exploitation.
➢C’est la raison pour laquelle Java est un langage portable : le bytecode reste le même quelque
soit l’environnement d’exécution.
Bytecode HelloWorld.class
9
13/02/2023
➢Compilé:
➢Interprété
10
13/02/2023
L’objet en Java
➢ Contient une mise en œuvre
▪ Des champs (attributs)
▪ Des méthodes d’instances
▪ Des constructeurs (méthodes d’initialisation vues dans ce cours)
➢ Expose des fonctionnalités
▪ En empêchant l’accès à certains champs/méthodes/constructeurs à partir de
l’extérieur de la classe
11
13/02/2023
12
13/02/2023
➢les commentaires (non traités par le compilateur) se situent entre les symboles “/*” et
“*/” ou commencent par le symbole “//” en se terminant à la fin de la ligne
int a ; // ce commentaire tient sur une ligne
int b ;
ou
/*Ce commentaire nécessite
2 lignes*/
int a ;
➢ Il faut évidemment que l’identificateur ne soit pas un mot réservé du langage (comme int
ou for).
Exemple :
13
13/02/2023
14
13/02/2023
Types caractère:
➢ Permet de gérer les caractères
➢ Un caractère est placé entre double quottes
15
13/02/2023
➢Le terme void est utilisé pour spécifier le retour vide ou une absence de paramètres d’une
méthode.
➢On peut remarquer que chaque type primitif possède une classe qui encapsule un attribut du
type primitif.
➢Exemple: la classe Integer encapsule un attribut de type int et permet ainsi d’effectuer des
opérations de traitement et des manipulations qui seraient impossibles sur une simple variable de
type int.
16
13/02/2023
➢ Initialisation: (méthode 2)
17
13/02/2023
18
13/02/2023
Ou (méthode 2):
for (int valeur: mon_tableau)
{
System.out.println(valeur);
}
Exemple: Tableaux
19
13/02/2023
20
13/02/2023
String s1 = ”hello” ;
String s2 = ”world” ;
String s3 = s1 + ” ” + s2 ;
//Après ces instructions s3 vaut ”hello world”
21
13/02/2023
➢Exemple :
➢ Le premier exemple qui vient à l'esprit est la définition de PI dans la classe Math.
Opérateurs
Les opérateurs arithmétiques Les opérateurs arithmétiques unaires
22
13/02/2023
Opérateurs
Une liste des opérateurs relationnels
Légende
<ari> valeur arithmétique, <boo> valeur booléenne, <cla> classe, <ent> valeur entière, <ins> instruction,
<str> chaîne de caractères (String), <val> valeur quelconque, <var> variable
Opérateurs
Une liste des opérateurs logiques (booléens): permet de vérifier si plusieurs conditions sont vraies:
23
13/02/2023
Opérateurs
Une liste des opérateurs disponibles en Java est présentée par ordre de priorité décroissante dans le tableau
Opérateur Syntaxe Résultat Signification < <ari> < <ari> <boo> inférieur à
<= <ari> <= <ari> <boo> inférieur ou égal à
++<ari> <ari> pré incrémentation > <ari> > <ari> <boo> supérieur à
++ <ari>++ <ari> post incrémentation >= <ari> >= <ari> <boo> supérieur ou égal à
— —<ari> <ari> pré décrémentation instanceof <val>instanceof<cla> <boo> test de type
+ <ari>— <ari> post décrémentation
- +<ari> <ari> signe positif == <val>==<val> <boo> égal à
! -<ari> <ari> signe négatif != <val>!=<val> <boo> différent de
(type) !<boo> <boo> complément logique
<ent>&<ent> <ent> ET bit à bit
(type)<val> <val> changement de type &
<boo>&<boo> <boo> ET booléen
* <ari>*<ari> <ari> multiplication <ent>ˆ<ent> <ent> OU exclusif bit à bit
/ <ari>/<ari> <ari> division ˆ
<boo>ˆ<boo> <boo> OU exclusif booléen
% <ari>%<ari> <ari> reste de la division
<ent>|<ent> <ent> OU bit à bit
+ <ari>+<ari> <ari> addition |
<boo>|<boo> <boo> OU booléen
- <ari>-<ari> <ari> soustraction
+ <str>+<str> <str> concaténation && <boo>&&<boo> <boo> ET logique
décalage de bits || <boo>||<boo> <boo> OU logique
<< <ent> << <ent> <ent> à gauche
?: <boo>?<ins>:<ins> <ins> si...alors...sinon
>> <ent> >> <ent> <ent> décalage de bits
à droite = <var>=<val> <val> assignation
Légende
<ari> valeur arithmétique, <boo> valeur booléenne, <cla> classe, <ent> valeur entière, <ins> instruction, <str> chaîne de caractères (String),
<val> valeur quelconque, <var> variable
13/02/2023 POO-2 DR A. ABOUD 47
Structures de contrôle
➢Les structures de contrôle permettent d’exécuter un bloc d’instructions
• soit plusieurs fois (instructions itératives)
• soit selon la valeur d’une expression (instructions conditionnelles ou de choix
multiple).
➢ Dans tous ces cas, un bloc d’instruction est
• soit une instruction unique ;
• soit une suite d’instructions commençant par une accolade ouvrante “{” et se
terminant par une accolade fermante “}”.
24
13/02/2023
Exemple:
int a=10, b=20;
int min= a<b ? a : b ;
int moyenne=13;
string resultat= moyenne<10 ? ‘’ refusé ’’ : ‘’admis ’’ ;
25
13/02/2023
Syntaxe : Exemple :
while (<condition>) {<bloc>} while (a != b) a++;
26
13/02/2023
Syntaxe : Exemple :
do {
do {<bloc>} while (<condition réalisée>); a++
} while (a != b);
27
13/02/2023
for (<compteur>;<condition>;<instr_post_itération>)
{
<bloc instructions>
}
Exemple :
➢ continue : l’exécution du bloc est arrêtée mais pas celle de la boucle. Une nouvelle
itération du bloc commence si la condition d’arrêt est toujours vraie.
28
13/02/2023
29
13/02/2023
Exemple :
❖ double c= a;
❖ int d= 8;
❖ byte f=(byte)d;
➢Il n'y a pas de perte d'information lorsque la grandeur du nombre converti est
conservée.
30
13/02/2023
➢Conversion explicite
➢Affectation
➢Promotion arithmétique
31
13/02/2023
✓ L'exécution de ces dernières affiche 25.0 à l'écran. Pourquoi le .0 ? Car la valeur 25 de type int à été
convertie en un float lors de l'affectation money = dollars.
✓ Cette conversion étant bien sans perte d'information, elle a pu se produire implicitement.
32
13/02/2023
33
13/02/2023
34
13/02/2023
35
13/02/2023
➢ La syntaxe:
System.out.println (“TEXT”);
➢ java.util contient des classes comme vecteurs, piles, files, tables ...
➢ java.awt contient les classes pour les interfaces (fenêtres, boutons, menus, graphique, événements ...)
➢ java.applet contient les classes permettant de créer des applications contenues dans des pages en HTML
36
13/02/2023
37