Académique Documents
Professionnel Documents
Culture Documents
Chapitre 2 1
Chapitre 2 1
A.Hammache 20
Plan du Chapitre
Introduction et historique
Types de données
Opérateurs
Instructions
A.Hammache 22
Java est simple
Simplicité relative par rapport au C++
A.Hammache 23
Java est un langage objet
Java reprend des caractéristiques de différents langages à
objets
La syntaxe de C++
La gestion dynamique de la mémoire de SmallTalk
A.Hammache 24
Java est robuste et sûr
Contrôle de typage « fort »
A.Hammache 25
JAVA est portable
Un code source Java est compilé pour générer un code assembleur virtuel : le
bytecode
A.Hammache 26
Comment il fonctionne …!
A.Hammache 27
Exemple
Bytecode
0: iconst_2
1: istore_1
2: iload_1
Programme source java 3: sipush 1000
6: if_icmpge 44
outer:
9: iconst_2 10: istore_2 11: iload_2
for (int i = 2; i < 1000; i++) {
12: iload_1
for (int j = 2; j < i; j++) {
13: if_icmpge 31
if (i % j == 0) continue outer;
16: iload_1
}
17: iload_2 18: irem
System.out.println (i);
19: ifne 25
}
22: goto 38
25: iinc 2, 1
28: goto 11
Compilation 31: getstatic #84;
(javac) 34: iload_1
35: invokevirtual #85;
38: iinc 1, 1
41: goto 2
44: return
A.Hammache 28
Les indispensables (JDK / JRE)
Le JRE= Java Runtime Environment
Il contient :
la machine virtuelle
Un ensemble de classes de base regroupées en packages
Interface utilisateur, conteneurs, gestion des threads, réseau, etc.
A.Hammache 29
Les packages de base
AWT et Swing
boutons, listes, menus, etc.
Réseau
Sockets (serveurs, clients), Web (URL), Applet…
Entrée-sortie
Fichier, Pipe, accès direct, etc.
Classes de base
Date, Chaîne de caractères
RMI
Remote Method Invocation
A.Hammache 30
Les packages de base
JDBC
Accès aux bases de données relationnelles
Beans
Composant Java
Sécurité
Cryptage, identification, signature
Internationalisation
Format de date/heure
Messages localisés
Caractères UNICODE 2
Utiles
Collection, Compression
A.Hammache 31
Les environnements de développement
Ils offrent des fonctions avancées :
– Éditeur évolué (couleur, autocorrection, présentation, etc.)
– Assistance syntaxique
– Générateur de code
– Débugage
– Environnement d’exécution
– …
A.Hammache 32
Constitution d’un programme java
Un programme Java est composé d’un ensemble de classes
Les classes sont regroupées en package
Une classe regroupe un ensemble d’attributs et de méthodes
Package n
Package 1
Classe 1
Attributs
Méthodes
A.Hammache 33
Premier programme en Java
public class Exemple{
public static void main (String argv[])
{
System.out.println("MON PREMIER PROGRAMME JAVA ");
}
}
A.Hammache 34
Étapes de mise en oeuvre
1. Edition (saisie): saisir le programme source java avec un
éditeur.
Le nom de fichier doit être le même que le nom de la
classe (nom de fichier= Exemple.java).
2. Compilation: produire le bytecode à partir de fichier source
(.java) en utilisant la commande javac
javac Exemple.java
Génération d’un fichier bytecode Exemple.class
3. Exécution: exécuter le bytecode obtenu en utilisant la
commande java
java Exemple
• ne pas mettre .class pour l’exécution.
A.Hammache 35
Briques de base de java
A.Hammache 36
Les commentaires
Les commentaires: Ils permettent de clarifier le code. Ils ne sont pas pris en
compte par le compilateur.
Il existe trois types de commentaires en Java :
Type caractère
Type booléen
boolean 1 bit deux valeurs possibles : true ou false
A.Hammache 38
Les identificateurs
A chaque objet, classe, variable, constante est associé un nom (identificateur).
L’identificateur peut se composer de tous les caractères alphanumériques et
des caractères _ et $.
Le premier caractère doit être une lettre, le caractère de soulignement
(_) ou le signe dollar ($).
Java est sensible à la casse: ( id <>iD)
Un identificateur ne peut pas appartenir à la liste des mots réservés du langage
Java . Cette liste est la suivante:
A.Hammache 39
Déclaration de variables
La Syntaxe de la déclaration:
type maVariable; // maVariable est un identificateur
Exemples
int p ; // p est une variable de type entier
double x ; // x est une variable de type flottant
char c; // c est une variable de type caractère
boolean b ; // b est une variable de type booléen
int X,Y,Z ; // Il est possible de déclarer plusieurs variables de même type en les
// séparant par une virgule.
La syntaxe de la déclaration et de l’initialisation d’une variable :
type maVariable=valeur; // Déclaration et initialisation de la variable
Exemples
boolean result = true;
char capitalC = ‘C’;
byte b = 100;
short s = 10000;
int i = 100000;
int decVal = 26; // Le nombre 26 en décimal
int octVal = 032; // Le nombre 26 en octal
int hexVal = 0x1a; // Le nombre 26 en hexadécimal
double d1 = 123.4;
double d2 = 1.234e2; // notation scientifique
float f1 = 123.4f; A.Hammache 40
Déclaration de constantes
Java définie une constante grâce au mot clé final: elle ne peut être
initialisée qu'une seule fois de façon statique (à la compilation) ou
dynamique. Une fois la valeur affectée, elle ne peut plus être
modifiée.
A.Hammache 41
Les opérateurs
Un opérateur applique une fonction sur des opérandes
(variables ou valeur) => valeur de retour
A.Hammache 42
L’opérateur d’affectation
L’opérateur « = » permet d’affecter la valeur
de l’expression qui est à droite à la variable qui
est à gauche.
Exemple
class Test {
int calculer () {
int i = 0; // Affecter la valeur 0 à la variable i
int j = 6; // Affecter la valeur 6 à la variable j
i = (j + 5) * 3; // Affecter la valeur de l’expression à i
return i + j;
}
}
43 A.Hammache
Les opérateurs arithmétiques
x = y * z ; //x vaut 6
x += 2 ; //x vaut 8 (équivalente à x=x+2;)
y = x / 4 ; //y vaut 2
y =x % 2 ; //y vaut 0
A.Hammache 44
Les opérateurs unaires
S’appliquent sur un seul opérande de type entier ou réel:
-, --, +, ++
Exemple
int x, y;
x = 3;
y = -x ; //y vaut -3
y = ++x ; //y vaut 4, x vaut 4
y = x-- ; //y vaut 4, x vaut 3
A.Hammache 46
Les opérateurs logiques
A.Hammache 47
Un opérateur spécial : l’opérateur ?
la syntaxe:
expression1? expression2: expression3;
expression1 est évaluée en premier (retourne une
valeur booléenne). Si sa valeur est true, expression2
est calculée, sinon expression3 est calculée.
Exemple
int x = 3, y = 4, max;
max = (x > y)? x: y; //Ceci revient à dire que max=y;
A.Hammache 48
La priorité des opérateurs
Java définit la priorité des opérateurs comme suit (du plus prioritaire au moins
prioritaire )
les parenthèses ()
les opérateurs d'incrémentation ++ , --
les opérateurs de multiplication, division, et modulo *, /, %
A.Hammache 49
Les conversions de type (1/2)
Il y a 4 contextes possibles de conversion:
Conversion explicite (cast)
Conversion implicite:
o Affectation
o Appel de méthode
o Promotion arithmétique
A.Hammache 51
Les Instructions
Java propose un ensemble d'instructions qui permettent
d'organiser et de structurer les traitements. L'usage de ces
instructions est similaire à celui rencontré dans d'autres langages.
Ces instructions sont :
Les tests conditionnels (if else, switch case);
Les boucles (for, while);
Les débranchements (break, continue).
A.Hammache 52
Test conditionnel (if …else)
la syntaxe : Exemple
class Test {
public static void main
if (condition) { (String args[]) {
Bloc d’instruction int compteur ;
} lire(compteur);
else { if (compteur == 0)
System.out.println("Début
Bloc d’instruction de la partie");
} else if (compteur ==10)
System.out.println("Fin
de la partie");
else if ((compteur >0)
condition est de type booléen &&(compteur<10))
System.out.println("Partie en
le if ne nécessite pas de then cours");
si Bloc d’instruction a une seule }
instruction alors pas besoin des {} }
A.Hammache 53
Test conditionnel Switch …case
Syntaxe : Exemple
switch (expression) { class Test {
public static void main (String args[])
case constante1 : {
instr11;
char c = (char)System.in.read();
instr12; switch(c) {
break; case ‘o’ : case ‘O’ :
case constante2 : System.out.println("Oui");
... break;
default : case ‘n’ : case ‘N’ :
... System.out.println("Non");
} default :
break;
Le « switch » ne s’applique qu’au
type entier ou caractère. System.out.println("Mauvaise
réponse");
Si un case ne contient pas de break break;
alors les traitements associés au }
}
case suivant sont exécutés. }
Il est possible d'imbriquer des
switch
A.Hammache 54
Boucles while
Syntaxe Exemple
while ( condition)
{ class Test {
... // code à exécuter dans la boucle public static void main
} (String args[]) {
int n = 10;
Condition est de type booléen. int somme = 0;
Le code est exécuté tant que la int i= 1;
condition est vraie. Si avant
l'instruction while, la condition est while( i<=n){
somme += i;
fausse, alors le code de la boucle ne i++;
sera jamais exécuté. }
Autre syntaxe System.out.println(" la
somme des "+n+" premiers
entiers est : "+somme);
do { }
... // code à exécuter dans la boucle
} while ( condition)
Résultat :
la somme des 10 premiers entiers est : 55
A.Hammache 56
Les débranchements
}
Résultat:
0
Résultat:
1
0
2
1
3
2
3 5
A.Hammache 58
Les tableaux : description
Exemples :
int table[];
double [] d1,d2 ;
A.Hammache 60
Les tableaux : initialisation
Initialisation dynamique :
int[] param = new int[10];
A.Hammache 63
Lecture des données à partir du clavier
A.Hammache 64
Exemple
import java.util.*; // inclure le package
A.Hammache 65
A.Hammache 66