Vous êtes sur la page 1sur 24

13/01/2018

Chapitre II

ÉLÉMENTS DE BASE DU LANGAGE


JAVA

© Imene Sghaier

ISET Nabeul
SEM2 & Mastère SEM1

OBJECTIFS ET ÉLÉMENTS DE CONTENU


 Objectifs spécifiques
 Introduire la syntaxe java
 Se familiariser avec les structures de control en Java
 Se familiariser avec les opérateurs arithmétiques,
logiques et de comparaison en Java
 Eléments de contenu
 Analyse d’un programme java
 Types de données en Java
 Variables et constantes
 Structures de control
 Les débranchements
 Les blocs labélisés
 Volume Horaire :
 Cours : 4.5 heures
2

Imene Sghaier-Programmation Orientée Objet en Java

1
13/01/2018

ANALYSE D’UN PROGRAMME


 On va commencer par l’observation d’un premier
programme complet et succinct en Java qui permet
d'afficher une phrase à l'écran

Voici ce que l'on peut lire à l'écran


après exécution du programme :

Imene Sghaier-Programmation Orientée Objet en Java

ANALYSE D’UN PROGRAMME


 Les quatre premières lignes du programme,
commençant par /** et se termine par */, elles
représentent un commentaire long. Ils n'affectent en
rien la tâche du programme, mais sont utiles pour que
le code source du programme soit plus compréhensible
par les humains.
 Le reste du programme, de la ligne 6 à la ligne 14, est
une définition de classe permettant de définir le
programme HelloWorld.
 Le corps de la classe se situe entre l'accolade ouvrante
( { ) du début (ligne 6) et l'accolade fermante ( }) de la
fin (ligne 14).
 Nous verrons plus loin que les classes sont les
éléments de base de la programmation Java. 4

Imene Sghaier-Programmation Orientée Objet en Java

2
13/01/2018

ANALYSE D’UN PROGRAMME


 Dans le corps de la classe, on retrouve une méthode.
 Il s'agit d'un groupe d'instructions auquel on a donné un
nom. Dans cet exemple, elle s'appelle main et contient une
instruction.
 Toutes les instructions simples se terminent par un point-
virgule ( ; ).
 Tout programme Java doit comporter une méthode public
static void main (String[] args) qui est la méthode
principale, le point d'entrée du programme.
 L’instruction 1 de la méthode main fait appel à une autre
méthode, la méthode println. Cette dernière permet
d'afficher des caractères à l'écran. Par contre, elle n'est pas
définie dans ce programme, mais fait partie de
l'objet System.out que nous examinerons dans un autre
chapitre. 5

Imene Sghaier-Programmation Orientée Objet en Java

ANALYSE D’UN PROGRAMME


 public: mot réservé au langage java qui indique la
visibilité de la classe(on va voir ça après)
 class: mot réservé au langage java qui annonce la
définition d’une classe
 HelloWorld: non de notre classe que nous avons choisi
 Public static void main(String[] args) : le programme
main de la classe: l’entrée d’éxécution de la classe
 System.out.println(…): pour afficher une chaine de
caractères:
 System est une classe prédéfinie en java
 out est un attribut de la classe System
 println est une des méthodes de l’objet out attribut de System
 NB: Pour utiliser des chaines de caractères en Java, il suffit
simplement d'écrire la séquence de caractères entre
guillemets doubles . 6

Imene Sghaier-Programmation Orientée Objet en Java

3
13/01/2018

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
7

Imene Sghaier-Programmation Orientée Objet en Java

LES MOTS RÉSERVÉS DU LANGAGE JAVA


 Il en existe 50:

Imene Sghaier-Programmation Orientée Objet en Java

4
13/01/2018

TYPES DE DONNÉES EN JAVA


 Lorsqu'on écrit des programmes, on a besoin de
stocker et manipuler des données. En Java, toute
donnée appartient à un type bien précis.
 Dans un programme java on peut trouver

 Des variables de types primitifs (int, float….).


 Des objets de classes prédéfinies Java.
 Des objets de classes personnalisées Java
(développées par nous même).
 Les types primitifs de Java peuvent être initialisés
avec des littéraux .
 Un littéral est la représentation dans le code source
d'une donnée de type primitif.

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
10

Imene Sghaier-Programmation Orientée Objet en Java

5
13/01/2018

TYPES DE DONNÉES EN JAVA: TYPES PRIMITIFS


ENType
JAVA Désignation Taille Intervalle
boolean Valeur logique 8 bits (1 O) true ou false

byte Octet signé 8 bits (1 O) -128 à 127


short Entier court signé 16 bits -32768 à 32767

char caractère 16 bits \u0000 à \uFFFF

int Entier signé 32 bits -2 x 109 à


2 x 109
float Virgule flottante 32 bits 1.401e-045
simple précision à 3.40272e+038

double Virgule flottante 64 bits 2.22507e-308


double précision à 1.79769e+308

long Entier long 64 bits -9 x 1018 à


9 x 1018 11

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
12

Imene Sghaier-Programmation Orientée Objet en Java

6
13/01/2018

VARIABLES ET CONSTANTES
 Toute variable doit être déclarée comme suit avant d’être utilisée en
java
typeVariable nomVariable[=valeur ou expression];
 La déclaration d'une variable permet de réserver la mémoire pour en
stocker la valeur.
 Une variable est utilisable dans le bloc où elle est définie.
 Le type d'une variable peut être un type élémentaire ou un objet :
 type_élémentaire variable ;
 class variable ;
 Les affectations non implicites doivent être castées (sinon erreur à la
compilation).
int i = 258;
long l = i; //ok
byte b = i; //error: Explicit cast needed to convert int to byte
byte b = 258;//error:Explicit cast needed to convert int to byte
13
byte b = (byte)i; // ok mais b = 2
Imene Sghaier-Programmation Orientée Objet en Java

VARIABLES ET CONSTANTES

 Les noms de variables peuvent commencer par une


lettre, par le caractère "_" ou par le signe "$".
 Le reste du nom peut comporter des lettres ou des
nombres mais jamais d'espaces.
 Il est possible de définir plusieurs variables de même
type en séparant chacune d'elles par une virgule.
 int jour, mois, annee ;
 Les constantes en Java sont déclarées à l’aide du mot
clés final
 final double resistance=200;
 final int max=100;
14

Imene Sghaier-Programmation Orientée Objet en Java

7
13/01/2018

VARIABLES ET CONSTANTES: VALEURS PAR DÉFAUT

Type Valeur par défaut

boolean False

byte, short, int, long 0

float, double 0.0

char \u000

15

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
16

Imene Sghaier-Programmation Orientée Objet en Java

8
13/01/2018

OPÉRATEURS ARITHMÉTIQUES
 Les opérateurs arithmétiques se notent
 + (addition),
 - (soustraction),
 * (multiplication),
 / (division) et
 % (reste de la division Euclidienne).
 Ils peuvent se combiner à l'opérateur d'affectation.

17

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
18

Imene Sghaier-Programmation Orientée Objet en Java

9
13/01/2018

OPÉRATEURS D’AFFECTATION

Opérateur Exemple et
signification
= a=10 veut dire a reçoit la
valeur 10
+= a+=10 veut dire a=a+10
-= a-=10 veut dire a=a-10
*= a*=10 veut dire a=a*10
/= a/=10 veut dire a=a/10
%= a%=10 veut dire a=a%10
^= a^=10 veut dire a=a10

19

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
20

Imene Sghaier-Programmation Orientée Objet en Java

10
13/01/2018

OPÉRATEURS DE COMPARAISON
Opérateur Exemple et signification
> a>10 veut dire a est strictement supérieur à 10
< a<10 veut dire a est strictement inférieur à 10
>= a>10 veut dire a est supérieur ou égal à 10
<= a>10 veut dire a est inférieur ou égal à 10

== a==10 est ce que a est égal ou non à 10 (condition)


!= a!=10 est ce que a est différent ou non de 10 (condition)
& a&b Et binaire (bit à bit)
^ a^b Ou exclusif
| a|b Ou binaire
&& a&&b Et logique (expression booléenne)
|| a||b Ou logique
?: a?b:c opérateur conditionnel ternaire: renvoie la valeur
de b si a est true sinon il renvoie la valeur de c
21

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
22

Imene Sghaier-Programmation Orientée Objet en Java

11
13/01/2018

PRIORITÉ DES OPÉRATEURS

()
++
--
* / et %
+ et -
Priorité décroissante << et >>
< > <= et >=
^
&
|
&&
||
= += et -= 23

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
24

Imene Sghaier-Programmation Orientée Objet en Java

12
13/01/2018

CONVERSION DE DONNÉES: CONVERSION IMPLICITE

Ce type de conversion peut être fait de façon


implicite et ne cause pas de perte d’information lors de
la conversion

De Vers
byte short, int, long, float, double
short int, long, float, double
char int, long, float, double
int long, float, double
long float, double
float double

25

Imene Sghaier-Programmation Orientée Objet en Java

CONVERSION DE DONNÉES: CONVERSION EXPLICITE

Ce type de conversion cause une de perte


d’information. Ces pertes d'informations sont dues au
fait qu'on passe d'un type de donnée qui utilise n bits
vers un autre qui en utilise m, avec m<n.

De Vers
short byte, char
char byte, short
int byte, short, char
long byte, short, char, int
float byte, short, char, int, long
double byte, short, char, int, long, float
26

Imene Sghaier-Programmation Orientée Objet en Java

13
13/01/2018

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
27

Imene Sghaier-Programmation Orientée Objet en Java

OPÉRATEUR DE MANIPULATION DE BITS

Opérateur Description Exemple


Unaire ~ NON binaire ~a
Binaire & ET binaire a&b
| OU binaire (inclusif) a|b
^ OU binaire (exclusif) a ^b

<< décalage à gauche a<<=10 veut dire a=a<<10


a est complété par des 0 à
droite

>> décalage à droite (signé) a>>=10 veut dire a=a>>10


a est complété par des 0 à
gauche

>>> décalage a>>>=10 veut dire


à droite (non signé) a=a>>>10 décalage à
gauche non signé (shift)
28

Imene Sghaier-Programmation Orientée Objet en Java

14
13/01/2018

OPÉRATEUR DE MANIPULATION DE BITS

X Y ~X X&Y X|Y X^Y

0 0 1 0 0 0

0 1 1 0 1 1

1 0 0 0 1 1

1 1 0 1 1 0

29

Imene Sghaier-Programmation Orientée Objet en Java

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
30

Imene Sghaier-Programmation Orientée Objet en Java

15
13/01/2018

OPÉRATEUR DE DÉCALAGE
 L'opérande de droite correspond au nombre de
positions de décalage.

31

Imene Sghaier-Programmation Orientée Objet en Java

REMARQUE: LES COMMENTAIRES EN JAVA

Type de commentaires Exemple

Commentaire abrégé //commentaire sur une ligne

Commentaire multiligne /* commentaire long ligne 1


commentaire long ligne 2*/

Commentaire de /** commentaire */


documentation automatique

32

Imene Sghaier-Programmation Orientée Objet en Java

16
13/01/2018

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
33

Imene Sghaier-Programmation Orientée Objet en Java

LES STRUCTURES DE CONTROL EN JAVA


 Outre les instructions de déclarations de variables et
constantes, d’affectations et d'affichage de valeur à l'écran on
peut trouver des instructions dites de contrôle, qui permettent
d'agir sur l'ordre d'exécution des instructions du programme.
On peut les classer en trois catégories :
 Les instructions conditionnelles permettent de choisir quelle portion
de code sera exécutée ou non, en fonction d'une condition qui est une
expression booléenne.
 Les instructions répétitives ou itératives permettent de répéter des
instructions un certain nombre de fois, tant qu'une certaine
condition de nouveau une expression booléenne, est satisfaite
 Les instructions de branchement permettent de faire un saut depuis
un point précis du programme vers un autre endroit. Il y a tout
d'abord break et continue qui sont utilisés avec les boucles et
également return, traité au chapitre 5.
34

Imene Sghaier-Programmation Orientée Objet en Java

17
13/01/2018

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
35

Imene Sghaier-Programmation Orientée Objet en Java

LES STRUCTURES CONDITIONNELLES EN JAVA


En Java, il y a deux instructions conditionnelles : if-else et switch :

if (boolean) { switch (expression) {


... case constante1 :
} else if (boolean) { instr11;
... instr12;
} break;
} else if (boolean) { case constante2 :
... instr21;
} } else if (boolean) { instr22;
... break;
} else { ...
... default : ...
} }

36

Imene Sghaier-Programmation Orientée Objet en Java

18
13/01/2018

LES STRUCTURES CONDITIONNELLES EN JAVA

if

Condition

)
true
Condition
37

LES STRUCTURES CONDITIONNELLES EN JAVA

if

Condition

) false else
Instruction 2
true

Instruction 1

38

19
13/01/2018

LES STRUCTURES CONDITIONNELLES

39

Imene Sghaier-Programmation Orientée Objet en Java

LES STRUCTURES CONDITIONNELLES

40

Imene Sghaier-Programmation Orientée Objet en Java

20
13/01/2018

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
41

Imene Sghaier-Programmation Orientée Objet en Java

LES STRUCTURES ITÉRATIVES – LES BOUCLES


En Java, il y a quatre instructions répétitives : while, do, for et
for-each (qu’on présentera dans un autre chapitre)

for ( initialisation; condition; modification) {


//...
}

for ( Object o: tab) { // for each


//tab est un tableau ou une collection d’objet
}

do { while(condition){
//...

} while ( boolean ) ; }
//……..

42

Imene Sghaier-Programmation Orientée Objet en Java

21
13/01/2018

LES STRUCTURES ITÉRATIVES : EXEMPLE

 Réaliser un programme permettant d'estimer (déterminer une


valeur assez proche) la valeur de PI calculée selon la formule : PI / 4 =
1 - 1/3 + 1/5 - 1/7 + 1/9 - etc . . .
Estimer PI avec le dernier dénominateur 499 999 en utilisant 3
boucles différentes (par exemple, les boucles while, do while et for).
L’exécution doit aboutir à ce qui suit :
Valeur de PI estimée avec la boucle
while: 3.141588653589781
do while: 3.141588653589781
for: 3.141588653589781
NB: la puissance nm peut être obtenue avec Math.pow(n,m)
43

Imene Sghaier-Programmation Orientée Objet en Java

LES STRUCTURES ITÉRATIVES : EXEMPLE

44

Imene Sghaier-Programmation Orientée Objet en Java

22
13/01/2018

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
45

Imene Sghaier-Programmation Orientée Objet en Java

LES DÉBRANCHEMENT

 break : permet de quitter immédiatement une boucle ou un


branchement.
 continue : s'utilise dans une boucle pour passer directement à
l'itération suivante
 break et continue peuvent s'exécuter avec des blocs nommés. Il
est possible de préciser une étiquette pour indiquer le point de
retour lors de la fin du traitement déclenché par le break.
 Une étiquette est un nom suivi de " ;" qui définit le début d'une
instruction.

46

Imene Sghaier-Programmation Orientée Objet en Java

23
13/01/2018

PLAN DU CHAPITRE
 Analyse d’un programme java
 Les mots réservés du langage Java
 Types de données en Java
 Les types primitifs
 Variables et constantes
 Valeurs par défaut
 Opérateurs arithmétiques
 Opérateurs d’affectation
 Opérateurs de comparaison
 Priorité des opérateurs
 Conversion de données
 Opérateurs de manipulation de bits
 Opérateurs de décalage
 Les structures de contrôle en Java
 Les structures conditionnelles en Java
 Les structures itératives en Java
 Les débranchements
 Les blocs labélisés
47

Imene Sghaier-Programmation Orientée Objet en Java

LES BLOCS LABÉLISÉS

UN: while(uneCondition) {
DEUX: for(...) {
TROIS: while(...) {
if (...)
continue UN;
// Reprend sur la première boucle while
if (...)
break DEUX;
// Quitte la boucle for
continue;
// Reprend sur la deuxième boucle while
}
}
} 48

Imene Sghaier-Programmation Orientée Objet en Java

24