Chapitre 2:
Syntaxe du langage Java
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 21
Plan du chapitre
Commentaires
Identificateurs et mots-clés
Types
Variables et constantes
Affichage
Saisie
Opérateurs
Structures de contrôle
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 22
Commentaires
Deux façons pour inclure des commentaires :
Toute une ligne précédée par « // »
// Commentaire sur une seule ligne
Tout un texte entre « /* » et « */ »
/* Commentaires
sur un nombre important voire très important
de lignes */
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 23
Identificateurs
Un identificateur (identifier) permet de désigner une
classe, une méthode, une variable …
On ne peut utiliser ce que l’on veut :
Interdiction d’utiliser les mots-clés
Contient uniquement :
Des lettres, des chiffres, $ et/ou _ (underscore)
Ne commence pas par :
Un chiffre
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 24
Mots-clés
abstract double int strictfp **
boolean else interface super
break extends long switch
byte final native synchronized
case finally new this
catch float package throw
char for private throws
class goto protected transient
const if public try
continue implements return void
default import short volatile
do instanceof static while
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 25
Types
Java est un langage fortement typé
Le type de données précise
les valeurs que la variable peut contenir
les opérations que l’on peut réaliser dessus
On peut distinguer deux familles de types :
Les types primitifs
Contiennent physiquement la valeur (caractère, nombre, …)
Les types par référence (vers des objets, des tableaux,…)
Contiennent l’adresse mémoire où l’information relative à l’objet est
réellement stockée.
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 26
Types primitifs
Types Primitifs
Entier Flottant
byte 8bits -128 à 127 float 32bits 1.4E-45 3.4E38
short 16bits -32768 à 32767 double 64bits 4.9E-324 1.8E308
int 32bits -2^31 à 2^31-1
long 64 bits -2^63 à 2^63-1
Texte Logique
char 16bits 0 à 65535 boolean : true/false
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 27
Variables
Déclaration et initialisation
La déclaration des variables et leur affectation
s’effectue de façon similaire au langage C
Exemples
byte i = 10;
float f = 253.56f;
double d = 23.7;
char c = 'a';
int x = 254;
boolean b = true;
long max = 3123456789L;
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 28
Constantes
Déclaration et initialisation
Une constante est déclarée avec le modificateur "final".
Il est obligatoire de l'initialiser au moment de la
déclaration.
Exemple
final int X = 10;
Utilisation d’une constante prédéfinie
[Link]
Math.E
…
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 29
Conversion de types
Il existe deux types de conversions:
Conversion implicite : lors d'une affectation, une
promotion arithmétique ou un passage de paramètres.
Conversion explicite (casting):
Au cas où la conversion implicite n’est pas possible.
Elle peut provoquer une perte de valeur.
Elle doit être demandée explicitement.
Syntaxe : (Type) variable
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 30
Conversion de types
Exemples
int i,j;
short s = 2;
double f = 2.5;
i = (int) f;
//conversion explicite obligatoire avec perte
i = s;
//conversion implicite lors d’une affectation
f = i / 2.0;
//conversion par promotion arithmétique
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 31
Affichage
Pour afficher de l’information, on peut utiliser, de la
classe System :
la méthode println() : affichage avec retour à la ligne.
la méthode print() : affichage sans retour à la ligne.
Exemple1
public class Affichage {
public static void main(String[] args) {
int x=10;
[Link](x); //Affiche “10”
}
}
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 32
Affichage
Exemple2
public class Affichage2 {
public static void main(String[] args) {
int x=10,y=20;
[Link]("x= " + x + " y= " + y);
}
}
L’opérateur "+" utilisé dans la méthode println() joue le rôle
d’opérateur de concaténation si au moins l’un des
paramètres est une chaine de caractères.
[Link]("x= " + x + " y= " + y); affiche x= 10 y= 20
[Link](x+y); affiche 30
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 33
Saisie
Pour saisir une donnée à partir du clavier, il faut :
Importer la classe Scanner
import [Link] ;
Créer un objet de type Scanner
Scanner keyb = new Scanner([Link]) ;
Utiliser cet objet pour demander une valeur au clavier :
int x = [Link]() ;
float f = [Link]() ;
boolean b = [Link]() ;
String s = [Link]() ;
…
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 34
Saisie
Exemple
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 35
Opérateurs
Opérateurs arithmétiques
Quelle est la valeur de : 5+3*4+(12/4+1) ?
Règles de précédences sur les opérateurs :
Niveau Symbole Signification
1 () Parenthèse
* Produit
2 / Division
% Modulo (reste de la division)
+ Addition ou concaténation
3
- Soustraction
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 36
Opérateurs
Opérateurs de comparaison
Opérateur Exemple Renvoie TRUE si
> v1 > v2 v1 plus grand que v2
>= v1 >= v2 Plus grand ou égal
< v1 < v2 Plus petit que
<= v1 <= v2 Plus petit ou égal à
== v1 == v2 égal
!= v1 != v2 Différent
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 37
Opérateurs
Opérateurs logiques
Opérateur Usage Renvoie TRUE si
&& expr1 && expr2 expr1 et expr2 sont vraies
|| expr1 || expr2 expr1 ou expr2, ou les deux sont vraies
^ expr1 ^ expr2 expr1 et expr2 sont différents
! ! Expr1 expr1 est fausse
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 38
Opérateurs
Opérateur d’assignation (affectation) : ‘=‘
Opérateurs d’assignation et arithmétique
Opérateur Exemple Équivalent à
+= expr1 += expr2 expr1 = expr1 + expr2
-= expr1 -= expr2 expr1 = expr1 – expr2
*= expr1 *= expr2 expr1 = expr1 * expr2
/= expr1 /= expr2 expr1 = expr1 / expr2
%= expr1 %= expr2 expr1 = expr1 % expr2
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 39
Opérateurs
Opérateur d’incrémentation ++/décrémentation --
Opérateur préfixé
++i i = i + 1 et --ii=i -1
Opérateur postfixé
i ++ i = i + 1 et i--i=i -1
Exemple
int var = 0;
[Link](var); // 0
[Link](++var); // 1
[Link](var); // 1
[Link](var--); // 1
[Link](var); // 0
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 40
Structures de contrôle
Structure conditionnelle if
if (expression)
{
//instructions
}
Structure conditionnelle if - else
if (expression)
{
//instructions
}
else
{
//instructions dans les autres cas
}
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 41
Structures de contrôle
Opérateur ternaire
Syntaxe
booleanExpression ? expression1 : expression2
Exemple
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 42
Structures de contrôle
Structure conditionnelle switch
switch (variable)
{
case 1 : instructions1; break;
case 2 : instructions2; break;
default : instructions3;
}
variable peut être de type : int, Integer, byte, Byte,
short, Short, char, Character, String (chaîne de
caractères) ou enum (énumération)
Exemple :
enum Civilite {MADAME, MADEMOISELLE, MONSIEUR} ;
Civilite variable = [Link] ;
Ne pas oublier le break
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 43
Structures de contrôle
Structure itérative for
for (initialisation; condition; mise à jour de valeurs)
{
// instructions
}
initialisation : à exécuter lorsque le programme
rentre pour la première fois dans la boucle
condition : à remplir pour recommencer le bloc
d’instructions
mise à jour : instruction exécutée chaque fois que la
boucle est terminée
Exemple
for (int i=0 ; i<10 ; i++) {
[Link]( " La valeur de i est : " + i);
}
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 44
Structures de contrôle
Structure itérative while
while (test_entrée) {
//instructions
}
La boucle s’exécute 0 ou plusieurs fois
Structure itérative do – while
do {
//instructions
} while (test_entrée)
La boucle s’exécute au moins une fois
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 45
Structures de contrôle
Ruptures de séquencement : break/continue
break : achève immédiatement la boucle (ou switch)
continue : ignore le reste des instructions et recommence
au début de la boucle
for (int i=0; i<10 ;i++){
if (i==5)
continue; //Si i=5, on recommence au début
if (i==7)
break; /* Si i=7, on sort de la boucle
et les instructions suivantes
sont exécutées */
[Link](" La valeur de i est : " + i);
}
Programmation Orientée Objet (Java) – T. BEN SAID 1MP-RITEL – ENETCOM – 2020/2021 46