SlideShare une entreprise Scribd logo
Généralités Java
Réalisé par : Ilhame EL FARISSI
1
Premier exemple de programme Java
Cette structure correspond à une classe nommée PremProg.
La première ligne identifie la classe PremProg, suivie d’un bloc.
Le bloc est délimité par des accolades et définit le contenu de la classe.
Le bloc définit une méthode particulière nommée main, il s’agit de la
fonction principale.
System.out.println permet d’afficher le texte qui est entre guillemets.
2
Exécution d’un programme Java
En utilisant un éditeur de texte (notepad++ ) + invite de commande
3
Exécution d’un programme Java
Javac PremProg.java : permet de compiler le fichier java et générer le
fichier class
Java PremProg : permet d’exécuter le programme.
4
Deuxième exemple de programme
Java
En utilisant l’éditeur de code VisualCodes
5
Troisième exemple de programme java
En utilisant l’environnement de développement intégré (IDE) eclipse
6
Généralités Java
7
Les règles générales d’écriture
Les identificateurs
C’est une suite de caractères servant à designer les différentes entités
manipulées par un programme: variables, fonctions, classes, objets…
Un identificateur commence par une lettre majuscule [A-Z], d’une lettre
minuscule [a-z] ou _ suivie de 0 ou plusieurs lettres (majuscule, minuscule, _) ou
de chiffres.
Les mots clés
Sont réservés par le langage à un usage bien défini et ne peuvent pas être
utilisés comme identificateurs. Par exemple : abstract, final, default, if, private, int,
case, public, try….
8
Les commentaires: Java dispose de deux formes de commentaires
Les commentaires usuels
Ils sont formés de caractères quelconque placés entre les caractère /* et */.
Les commentaires de fin de ligne
Ils sont introduits par le double caractère //.
9
Les types primitifs de Java
10
Les types primitifs de Java
Les types primitifs de Java se répartissent en quatre grandes catégories
selon la nature des informations qu’ils permettent de représenter
Nombres entiers
Nombres flottants
Caractères
booléens
11
Les types entiers
Ils servent à représenter des nombres entiers relatifs.
Un bit est réservé au signe
0 pour positif
1 pour négatif
La valeur absolue du nombre pour les positifs
Ce que l’on nomme le complément à deux du nombre, pour les négatifs.
12
Les types entiers (cas d’un nombre
positif)
Sa valeur absolue est écrite en base 2, à la suite du bit de signe.
1 0000000000000001
2 0000000000000010
3 0000000000000011
16 0000000000010000
127 0000000001111111
255 0000000011111111
13
Les types entiers (cas d’un nombre
négatif)
Sa valeur absolue est codée suivant ce que l’on nomme la technique du
complément à deux.
Pour ce faire, cette valeur est d’abord exprimée en base 2, puis tous les bits
sont inversés (1 devient 0 et 0 devient 1)
Enfin, on ajoute une unité au résultat.
-1 1111111111111111
-2 1111111111111110
-3 1111111111111101
-4 1111111111111100
-16 1111111111110000
-255 1111111100000001
14
Les différents types d’entiers
Type Taille(octets) Valeur minimale Valeur maximale
Byte 1 -128 127
short 2 -32 768 32 767
int 4 -2 147 483 648 -2 147 483 647
long 8 -9 223 372 036 854 775 808 -9 223 372 036 854 775 807
15
Les types flottants
16
Les types flottants
Partons tout de suite sur un exemple : comment représenter 5,1875 en binaire ?
Il nous faut déjà représenter 5, ça, pas de problème : 101
Comment représenter le ",1875" ?
on multiplie 0,1875 par 2 : 0,1875 x 2 = 0,375. On obtient 0,375 que l'on écrira 0 + 0,375
on multiplie 0,375 par 2 : 0,375 x 2 = 0,75. On obtient 0,75 que l'on écrira 0 + 0,75
on multiplie 0,75 par 2 : 0,75 x 2 = 1,5. On obtient 1,5 que l'on écrira 1 + 0,5 (quand le résultat de
la multiplication par 2 est supérieur à 1, on garde uniquement la partie décimale)
on multiplie 0,5 par 2 : 0,5 x 2 = 1,0. On obtient 1,0 que l'on écrira 1 + 0,0 (la partie décimale est
à 0, on arrête le processus)
On obtient une succession de "a + 0,b" ("0 + 0,375", "0 + 0,75", "1 + 0,5" et "1 + 0,0"). Il suffit
maintenant de "prendre" tous les "a" (dans l'ordre de leur obtention) afin d'obtenir la
partie décimale de notre nombre : 0011
Nous avons (101,0011)2
qui est la représentation binaire de (5,1875)10
17
Les types flottants
Nous allons étudier deux formats associés à cette norme : le format dit
"simple précision" et le format dit "double précision".
Le format "simple précision" utilise 32 bits pour écrire un nombre flottant (float).
alors que le format "double précision" utilise 64 bits (double).
Que cela soit en simple précision ou en double précision, on utilise :
1 bit de signe (1 si le nombre est négatif et 0 si le nombre est positif)
des bits consacrés à l'exposant (8 bits pour la simple précision et 11 bits pour la
double précision)
des bits consacrés à la mantisse (23 bits pour la simple précision et 52 bits pour la
double précision)
18
Les types flottants
19
Le type caractère
Une variable de type caractère se déclare en utilisant le mot clé char
comme dans :
20
Le type booléen
Ce type sert à représenter une valeur logique du type vrai/faux.
Les deux constantes du type booléen se notent true et false.
21
Initialisation et constantes
Initialisation d’une variable
Cas des variables non initialisées
Constantes (Le mot clé final)
22
Initialisation d’une variable
Une variable peut recevoir une valeur initiale au moment de sa
déclaration, comme dans:
Ou bien après la déclaration:
il est possible d’initialiser une variable avec une expression autre qu’une
constante. Voici un exemple:
23
Cas des variables non initialisées
En java, une variable n’ayant pas encore reçu de valeur ne peut pas être
utilisée, sous peine d’aboutir à une erreur de compilation. En voici deux
exemples:
Exemple 1:
Exemple 2:
24
Cas des variables non initialisées
Java est capable de détecter toutes les situations non initialisées, comme
le montre cet exemple:
En revanche, les instructions suivantes seront acceptées:
25
Constantes (Le mot clé final)
Java permet de déclarer que la valeur d’une variable ne doit pas être
modifiée pendant l’exécution du programme. Par exemple, avec:
Toute tentative ultérieure de modification de la valeur de n sera rejetée par
le compilateur.
26
Les opérateurs et les expressions
Les opérateurs arithmétiques
Les opérateurs relationnels
Les opérateurs logiques
L’opérateur d’affectation
Les opérateurs d’incrémentation et de décrémentation
L’opérateur de cast
L’opérateur conditionnel
27
Les opérateurs arithmétiques
Java dispose d’opérateurs classiques binaires:
L’addition (+)
La soustraction (-)
La multiplication (*)
La division (/)
Ainsi que deux opérateurs unaires (c’est-à-dire ne portant qu’un seul
opérande)
L’opposé note – ( –n ou –x+y)
L’identité note + (+a ou +(b-a))
28
Les opérateurs arithmétiques
Les opérateurs unaires + et – ont la priorité la plus élevée.
On trouve ensuite, à un même niveau, les opérateurs *, / et %.
Au dernier niveau, apparaissent les opérateurs binaires + et -.
En cas de priorités identiques, les calculs se font de gauche à droite
(associativité de gauche à droite)
a + b * c a + (b *c)
a * b + c % d (a * b)+(c % d)
-c % d (-c) %d
- a + c % d (- a) + (c % d)
- a / - b + c ( (- a) / (- b) ) + c
- a / - (b + c) (- a) / (- (b + c))
29
Les opérateurs arithmétiques
Il est possible d’écrire des expressions mixtes dans lesquelles interviennent
des opérandes de types différents. Le compilateur va mettre en place des
instructions de conversion de valeur.
Une conversion ou un ajustement de type se fait suivant la hiérarchie
suivante:
int 🡺 long 🡺 float 🡺 double
30
Les opérateurs arithmétiques
n est de type int
p est de type long
x est de type float
Conversion de n en long
Multiplication par p
Le résultat de * est de type long
Il est converti en float
Pour être additionné à x
Ce qui nous fournit un résultat de type float
31
Les opérateurs relationnels
Opérateur Signification
< Inférieur à
<= Inférieur ou égal à
> Supérieur à
>= Supérieur ou égal à
== Égal à
!= Différent de
32
Les opérateurs logiques
Opérateur Signification
! Négation
& Et
^ Ou exclusif
| Ou inclusif
&& Et (avec court-circuit)
|| Ou inclusif (avec court-circuit)
33
Les opérateurs logiques
(a<b)&&(c<d) ou (a<b)&(c<d)
Prend la valeur true si les deux expressions a<b et c<d sont toutes les deux vraies,
la valeur false dans le cas contraire.
(a<b)||(c<d) ou (a<b)|(c<d)
Prend la valeur true si l’une au moins des deux conditions a<b et c<d est vraie.
(a<b)^(c<d)
Prend la valeur true si une et une seule des deux conditions a<b et c<d est vraie.
!(a<b)
Prend la valeur true si la condition a<b est fausse.
Les deux opérateurs && et || jouissent d’une propriété intéressante: leur
second opérande n’est évalué que si la connaissance de sa valeur est
indispensable pour décider si l’expression correspondante est vrai ou fausse
34
L’opérateur d’affectation
L’opérateur d’affectation = possède une associativité de droite à gauche.
On évalue d’abord l’expression j=5
On affecte la valeur 5 à la variable j
Enfin on affecte la valeur 5 à la variable i.
35
Les opérateurs d’incrémentation et de
décrémentation
Incrémenter c’est augmenter une variable selon un incrément donné.
Décrémenter c’est soustraire une valeur donnée à une variable.
On rencontre souvent des expressions telles que
Qui incrémentent ou décrémentent de 1.
En java, ces actions peuvent être réalisées par des opérateurs unaires.
Ainsi l’expression : ++i a pour effet d’incrémenter de 1 la valeur de la
variable i, et sa valeur est celle de i après incrémentation.
36
Les opérateurs d’incrémentation et de
décrémentation
Il est important de voir que la valeur de cette expression est celle de i après
incrémentation.
Ainsi, si la valeur de i est 5, l’expression : n=++i -5 affectera à i la valeur 6 et
à n la valeur 1.
En revanche, lorsque cet opérateur est placé après l’opérande, la valeur
de l’expression correspondante est celle de la variable avant
incrémentation.
Ainsi, si i vaut 5, l’expression; n=i++ -5 affectera à i la valeur 6 et à n la valeur
0.
37
L’opérateur de cast
S’il le souhaite, le programmeur peut forcer la conversion d’une expression
quelconque dans un type de son choix, à l’aide d’un opérateur un peu
particulier nommé cast.
Si par exemple, n et p sont des variables de type int, l’expression:
(double)(n/p)
Aura comme valeur celle de l’expression entière n/p convertie en double.
La notation (double) correspond en fait à un opérateur unaire dont le rôle
est d’effectuer la conversion dan le type double de l’expression sur laquelle
il porte.
38
L’opérateur conditionnel
Cette instruction attribue à la valeur max la plus grande des deux valeurs
de a et de b.
En Java, il est possible, grâce à l’opérateur conditionnel, de traduire cette
instruction de la manière suivante:
Exemple 2: Ici, selon que la condition a>b est vraie ou fausse on
incrémentera ou on décrémentera la variable i.
39
Les instruction de contrôle de Java
L’instruction if
L’instruction switch
L’instruction for
L’instruction do…while
L’instruction while
Les instruction de branchement inconditionnel break et continue
40
L’instruction if
L'instruction if est l'instruction de base de toutes les instructions de contrôle
(control flow statements). Elle demande à votre programme d'exécuter un
certain morceau de code seulement lorsqu'une condition est évaluée
comme elle est vraie.
Ceci est la structure de l'instruction if :
41
L’instruction if
42
L’instruction if
L'instruction if-else est également utilisée pour vérifier une condition. Elle va
exécuter (execute) if block si la condition est vraie, si la condition est
fausse, elle exécute else block.
43
L’instruction if
44
L’instruction if
La structure d'une instruction if-else est :
45
L’instruction if
46
L’instruction switch
L'instruction switch vérifie la valeur d'une variable (variable) et compare la
variable avec chaque valeur différente de haut en bas. Chaque valeur
comparée est surnommée un cas (case). Quand un cas est vrai, le bloc de
commande de ce cas sera exécuté (execute).
47
L’instruction switch
Si tous les cas sont faux, le bloc de commande par défaut sera exécuté.
Dans la structure de l'instruction switch, il peut y avoir ou non un bloc de
commande défaut.
48
L’instruction switch
Lorsqu'un vrai cas est trouvé, le bloc de commande de ce cas sera
exécuté.
S'il n'y a pas de l'instruction break dans ce bloc, le programme exécute le
bloc de commandes ci-dessous jusqu'à quand il trouve l'instruction break,
ou jusqu'à quand il ne trouve pas de bloc à exécuter.
L'instruction break aide le programme à sortir de l'instruction switch.
49
L’instruction switch
Notez que l'instruction case doit être une valeur précise, vous ne pouvez
pas effectuer les opérations suivantes :
50
L’instruction switch
51
L’instruction switch
break est une instruction qui peut apparaître dans le bloc de
commande case ou le bloc de commande par défaut de switch.
Lorsque le programme attrape l'instruction break, le programme
quittera switch.
52
L’instruction switch(Récapitulatif)
Lorsque le programme rencontre une instruction switch, il vérifie les cas de
haut en bas.
Lorsque le bloc de commande trouve un vrai cas, il sera exécuté.
S'il n'a pas rencontré de l'instruction break dans ce bloc, il continue à
exécuter les blocs ci-dessous jusqu'à ce qu'il attrape l'instruction break ou
jusqu'à quand il ne trouve aucun bloc à exécuter.
53
L’instruction switch
54
L’instruction for
Dans la programmation informatique (computer programming), une
boucle est régulièrement utilisée et le but est d'exécuter un programme à
plusieurs reprises.
Java prend en charge 3 types de boucles différentes :
La boucle for
La boucle while
La boucle do-while
55
L’instruction for
La syntaxe de l’instruction for:
56
L’instruction for
57
L’instruction for
Les résultats d'exécution de la classe ForLoopExample1 :
58
L’instruction while
La boucle while est utilisée pour exécuter plusieurs fois un segment de
programme, quand une condition est toujours true.
La boucle while est généralement utilisée lorsque le nombre d'itérations ne
peut être déterminé avant (non fixé).
Ceci est la structure de boucle while :
59
L’instruction while
60
L’instruction do…while
La boucle do-while est utilisée pour exécuter un segment de programme
plusieurs fois.
Les caractéristiques de do-while est un bloc de commande qui est toujours
exécuté au moins une fois.
Après l'itération (iteration), le programme vérifie la condition, si la condition
est toujours vraie, le bloc de commande sera encore exécuté.
Ceci est la structure de boucle do-while :
61
L’instruction do…while
62
Les instructions de branchement
inconditionnel break et continue
L'instruction break peut apparaître dans une boucle. C'est l'instruction qui
aide le programme à sortir de la boucle.
63
Les instructions de branchement
inconditionnel break et continue
64
Les instructions de branchement
inconditionnel break et continue
Le résultat
65
Les instructions de branchement
inconditionnel break et continue
L'instruction continue peut apparaître dans une boucle.
Lorsque le programme attrape une instruction continue,il ignore les
instructions à l'intérieur du bloc et le bas de l'instruction continue et entame
une nouvelle itération (si les conditions sont vraies. ).
66
Les instructions de branchement
inconditionnel break et continue
67
Les instructions de branchement
inconditionnel break et continue
Le résultat
68
Les instructions de branchement
inconditionnel break et continue
Java permet de coller une étiquette (Label) à une boucle,
Ce qui est utile dans le cas d’utilisation des boucles imbriquées dans un
programme.
Il est possible d’utiliser l'instruction break labelX; Pour break la boucle à
étiquette labelX.
Vous pouvez utiliser l'instruction continue labelX; Pour continue la boucle à
étiquette labelX.
69
Les instructions de branchement
inconditionnel break et continue
70
Les instructions de branchement
inconditionnel break et continue
71
Les instructions de branchement
inconditionnel break et continue
72
Les instructions de branchement
inconditionnel break et continue
L'exemple d'utilisation des boucles imbriquées et d'utilisation
l'instruction étiquetée continue
73
Les instructions de branchement
inconditionnel break et continue
74
Les instructions de branchement
inconditionnel break et continue
Le résultat
75
Les tableaux
Un tableau est l’équivalent d’une table de taille fixe contenant des valeurs
d’un type donné. La taille de la table est appelée sa dimension.
Un tableau peut contenir des valeurs scalaires de type int, double,
boolean, etc.
Il peut également contenir des références sur des objets d’un type donné.
Une variable de type tableau se déclare en faisant suivre le type des
éléments du tableau par des crochets [].
Exemple :
76
Les tableaux
Une variable de type tableau doit être initialisée en créant un tableau.
Sinon, un accès à un élément du tableau provoquera une erreur.
L’initialisation se fait avec l’instruction new suivi du type des éléments du
tableau suivi de la dimension entre crochet.
Exemple :
77
Les tableaux
La dimension du tableau est choisie à a création du tableau. Elle ne peut
plus être modifié.
Les éléments d’un tableau de dimension n sont numérotés de 0 à n-1.
Le numéro d’un élément dans un tableau est appelé son indice.
Pour accéder à un élément du tableau à partir de son indice, on fait suivre
le nom de la variable de type tableau du crochet ouvrant, de l’indice et
du crocher fermant.
Exemple:
Si l’on a déclaré et initialisé la variable names :
On peut accéder à l’élément d’indice 7 avec la notation names[7] :
78
Tableau à plusieurs dimensions
Lors d’une définition de tableau le nombre de crochets indique le nombre
de dimensions du tableau.
L’instruction suivante définit un tableau à 2 dimensions 5 lignes sur 10
colonnes ( ou l’inverse ).
79
Tableau à plusieurs dimensions
Un tableau à plusieurs dimensions peut être initialisé :
T21 définit un tableau dont la première dimension va de l'indice 0 à l'indice
1 et la deuxième dimension de l'indice 0 à l'indice 2.
80
Tableau à plusieurs dimensions
Toutes les lignes d’un tableau à 2 dimensions n’ont pas forcément le même
nombre d’éléments :
81

Contenu connexe

PDF
Algorithmique et Programmation I - Lilia Ayadi.pdf
PDF
Cours-ALGORITHMIQUE-03.pdf
PDF
algorithme tronc commun lycée
PDF
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
PDF
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
PPTX
Algorithmique
PPTX
Algorithmique
PDF
Conception de base_de_l_algorithme
Algorithmique et Programmation I - Lilia Ayadi.pdf
Cours-ALGORITHMIQUE-03.pdf
algorithme tronc commun lycée
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
Algorithmique
Algorithmique
Conception de base_de_l_algorithme

Similaire à 1Chapitre2_Généralités Java.pptx (1).pdf (20)

PDF
Tp introduction java
PPTX
cours détaillé python premier annee OFPPT.pptx
PPTX
cours détaillé python premier annee OFPPT.pptx
PDF
syntax-matlab.pdf
PPTX
algorithme chapitre 1 et 2 (1).pptx
PDF
Algorithmique
PPTX
Les structures de données.pptx
PDF
Les bases de la programmation en JAVA
PPTX
Le langage C# de Microsoft .
PDF
Un même algorithme peut être écrit python
PDF
Ch2-Notions de base & actions élémentaires.pdf
PPT
COURS ALGOgithmique et programmation ofppt.ppt
PPT
COURS ALGOgithmique et programmation ofppt.ppt
PDF
cours-algorithmique-ensam-partie2_compress.pdf
PPTX
UNIVERSTE LA FRANCOPHONIE DE NDJAMENA.pptx
PPTX
UNIVERSTE LA FRANCOPHONIE DE NDJAMENA.pptx
PPTX
UNIVERSTE LA FRANCOPHONIE DE NDJAMENA.pptx
PPTX
algorithmique
PPTX
Algorithmique et Programmation I - Lilia Ayadi.pptx
PDF
3 vb reference
Tp introduction java
cours détaillé python premier annee OFPPT.pptx
cours détaillé python premier annee OFPPT.pptx
syntax-matlab.pdf
algorithme chapitre 1 et 2 (1).pptx
Algorithmique
Les structures de données.pptx
Les bases de la programmation en JAVA
Le langage C# de Microsoft .
Un même algorithme peut être écrit python
Ch2-Notions de base & actions élémentaires.pdf
COURS ALGOgithmique et programmation ofppt.ppt
COURS ALGOgithmique et programmation ofppt.ppt
cours-algorithmique-ensam-partie2_compress.pdf
UNIVERSTE LA FRANCOPHONIE DE NDJAMENA.pptx
UNIVERSTE LA FRANCOPHONIE DE NDJAMENA.pptx
UNIVERSTE LA FRANCOPHONIE DE NDJAMENA.pptx
algorithmique
Algorithmique et Programmation I - Lilia Ayadi.pptx
3 vb reference
Publicité

Dernier (17)

PPTX
Chapitre7-java------------------ Exception.pptx
PDF
TP L’analyse granulométrique par tamisage
PPTX
Introduction aux Systèmes temps réel.pptx
PDF
Expansion du Réseau de Gazoducs de Gaz Naturel au Brésil _ Analyse Technique ...
PDF
FAQ_FORAGE_EAU_SUNRISE_ENGINEERING_GROUP_SARL2025.pdf
PPTX
CH1-RMELLOULI-Données des problèmes d'ordonnancement de la production.pptx
PPTX
mon_expose_de_geophysique_disposotif_de_wener.pptx
PDF
Proposition de contenu pouvant résoudre les problèmes détectés à partir des é...
PPT
620118449-1-Introduction-de-La-MOCN.pptT
PDF
CHAPITRE 3 Typologie des réseaux [Enregistrement automatique] 4.pdf
PDF
Visite de chantier – Projet de Polyclinique à Laghouat
PPTX
COURS DE PROSPECTION MINIERE UTMSIRI - Copie.pptx
PDF
Regles sur la gestion de l’Eclairage public
PPTX
UMAPON Cours de traitement des minerais 2.pptx
PPTX
Logique séquentielle : les fondamentaux
PDF
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
PDF
TP de La Masse Volumique apparente et absolue
Chapitre7-java------------------ Exception.pptx
TP L’analyse granulométrique par tamisage
Introduction aux Systèmes temps réel.pptx
Expansion du Réseau de Gazoducs de Gaz Naturel au Brésil _ Analyse Technique ...
FAQ_FORAGE_EAU_SUNRISE_ENGINEERING_GROUP_SARL2025.pdf
CH1-RMELLOULI-Données des problèmes d'ordonnancement de la production.pptx
mon_expose_de_geophysique_disposotif_de_wener.pptx
Proposition de contenu pouvant résoudre les problèmes détectés à partir des é...
620118449-1-Introduction-de-La-MOCN.pptT
CHAPITRE 3 Typologie des réseaux [Enregistrement automatique] 4.pdf
Visite de chantier – Projet de Polyclinique à Laghouat
COURS DE PROSPECTION MINIERE UTMSIRI - Copie.pptx
Regles sur la gestion de l’Eclairage public
UMAPON Cours de traitement des minerais 2.pptx
Logique séquentielle : les fondamentaux
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
TP de La Masse Volumique apparente et absolue
Publicité

1Chapitre2_Généralités Java.pptx (1).pdf

  • 1. Généralités Java Réalisé par : Ilhame EL FARISSI 1
  • 2. Premier exemple de programme Java Cette structure correspond à une classe nommée PremProg. La première ligne identifie la classe PremProg, suivie d’un bloc. Le bloc est délimité par des accolades et définit le contenu de la classe. Le bloc définit une méthode particulière nommée main, il s’agit de la fonction principale. System.out.println permet d’afficher le texte qui est entre guillemets. 2
  • 3. Exécution d’un programme Java En utilisant un éditeur de texte (notepad++ ) + invite de commande 3
  • 4. Exécution d’un programme Java Javac PremProg.java : permet de compiler le fichier java et générer le fichier class Java PremProg : permet d’exécuter le programme. 4
  • 5. Deuxième exemple de programme Java En utilisant l’éditeur de code VisualCodes 5
  • 6. Troisième exemple de programme java En utilisant l’environnement de développement intégré (IDE) eclipse 6
  • 8. Les règles générales d’écriture Les identificateurs C’est une suite de caractères servant à designer les différentes entités manipulées par un programme: variables, fonctions, classes, objets… Un identificateur commence par une lettre majuscule [A-Z], d’une lettre minuscule [a-z] ou _ suivie de 0 ou plusieurs lettres (majuscule, minuscule, _) ou de chiffres. Les mots clés Sont réservés par le langage à un usage bien défini et ne peuvent pas être utilisés comme identificateurs. Par exemple : abstract, final, default, if, private, int, case, public, try…. 8
  • 9. Les commentaires: Java dispose de deux formes de commentaires Les commentaires usuels Ils sont formés de caractères quelconque placés entre les caractère /* et */. Les commentaires de fin de ligne Ils sont introduits par le double caractère //. 9
  • 10. Les types primitifs de Java 10
  • 11. Les types primitifs de Java Les types primitifs de Java se répartissent en quatre grandes catégories selon la nature des informations qu’ils permettent de représenter Nombres entiers Nombres flottants Caractères booléens 11
  • 12. Les types entiers Ils servent à représenter des nombres entiers relatifs. Un bit est réservé au signe 0 pour positif 1 pour négatif La valeur absolue du nombre pour les positifs Ce que l’on nomme le complément à deux du nombre, pour les négatifs. 12
  • 13. Les types entiers (cas d’un nombre positif) Sa valeur absolue est écrite en base 2, à la suite du bit de signe. 1 0000000000000001 2 0000000000000010 3 0000000000000011 16 0000000000010000 127 0000000001111111 255 0000000011111111 13
  • 14. Les types entiers (cas d’un nombre négatif) Sa valeur absolue est codée suivant ce que l’on nomme la technique du complément à deux. Pour ce faire, cette valeur est d’abord exprimée en base 2, puis tous les bits sont inversés (1 devient 0 et 0 devient 1) Enfin, on ajoute une unité au résultat. -1 1111111111111111 -2 1111111111111110 -3 1111111111111101 -4 1111111111111100 -16 1111111111110000 -255 1111111100000001 14
  • 15. Les différents types d’entiers Type Taille(octets) Valeur minimale Valeur maximale Byte 1 -128 127 short 2 -32 768 32 767 int 4 -2 147 483 648 -2 147 483 647 long 8 -9 223 372 036 854 775 808 -9 223 372 036 854 775 807 15
  • 17. Les types flottants Partons tout de suite sur un exemple : comment représenter 5,1875 en binaire ? Il nous faut déjà représenter 5, ça, pas de problème : 101 Comment représenter le ",1875" ? on multiplie 0,1875 par 2 : 0,1875 x 2 = 0,375. On obtient 0,375 que l'on écrira 0 + 0,375 on multiplie 0,375 par 2 : 0,375 x 2 = 0,75. On obtient 0,75 que l'on écrira 0 + 0,75 on multiplie 0,75 par 2 : 0,75 x 2 = 1,5. On obtient 1,5 que l'on écrira 1 + 0,5 (quand le résultat de la multiplication par 2 est supérieur à 1, on garde uniquement la partie décimale) on multiplie 0,5 par 2 : 0,5 x 2 = 1,0. On obtient 1,0 que l'on écrira 1 + 0,0 (la partie décimale est à 0, on arrête le processus) On obtient une succession de "a + 0,b" ("0 + 0,375", "0 + 0,75", "1 + 0,5" et "1 + 0,0"). Il suffit maintenant de "prendre" tous les "a" (dans l'ordre de leur obtention) afin d'obtenir la partie décimale de notre nombre : 0011 Nous avons (101,0011)2 qui est la représentation binaire de (5,1875)10 17
  • 18. Les types flottants Nous allons étudier deux formats associés à cette norme : le format dit "simple précision" et le format dit "double précision". Le format "simple précision" utilise 32 bits pour écrire un nombre flottant (float). alors que le format "double précision" utilise 64 bits (double). Que cela soit en simple précision ou en double précision, on utilise : 1 bit de signe (1 si le nombre est négatif et 0 si le nombre est positif) des bits consacrés à l'exposant (8 bits pour la simple précision et 11 bits pour la double précision) des bits consacrés à la mantisse (23 bits pour la simple précision et 52 bits pour la double précision) 18
  • 20. Le type caractère Une variable de type caractère se déclare en utilisant le mot clé char comme dans : 20
  • 21. Le type booléen Ce type sert à représenter une valeur logique du type vrai/faux. Les deux constantes du type booléen se notent true et false. 21
  • 22. Initialisation et constantes Initialisation d’une variable Cas des variables non initialisées Constantes (Le mot clé final) 22
  • 23. Initialisation d’une variable Une variable peut recevoir une valeur initiale au moment de sa déclaration, comme dans: Ou bien après la déclaration: il est possible d’initialiser une variable avec une expression autre qu’une constante. Voici un exemple: 23
  • 24. Cas des variables non initialisées En java, une variable n’ayant pas encore reçu de valeur ne peut pas être utilisée, sous peine d’aboutir à une erreur de compilation. En voici deux exemples: Exemple 1: Exemple 2: 24
  • 25. Cas des variables non initialisées Java est capable de détecter toutes les situations non initialisées, comme le montre cet exemple: En revanche, les instructions suivantes seront acceptées: 25
  • 26. Constantes (Le mot clé final) Java permet de déclarer que la valeur d’une variable ne doit pas être modifiée pendant l’exécution du programme. Par exemple, avec: Toute tentative ultérieure de modification de la valeur de n sera rejetée par le compilateur. 26
  • 27. Les opérateurs et les expressions Les opérateurs arithmétiques Les opérateurs relationnels Les opérateurs logiques L’opérateur d’affectation Les opérateurs d’incrémentation et de décrémentation L’opérateur de cast L’opérateur conditionnel 27
  • 28. Les opérateurs arithmétiques Java dispose d’opérateurs classiques binaires: L’addition (+) La soustraction (-) La multiplication (*) La division (/) Ainsi que deux opérateurs unaires (c’est-à-dire ne portant qu’un seul opérande) L’opposé note – ( –n ou –x+y) L’identité note + (+a ou +(b-a)) 28
  • 29. Les opérateurs arithmétiques Les opérateurs unaires + et – ont la priorité la plus élevée. On trouve ensuite, à un même niveau, les opérateurs *, / et %. Au dernier niveau, apparaissent les opérateurs binaires + et -. En cas de priorités identiques, les calculs se font de gauche à droite (associativité de gauche à droite) a + b * c a + (b *c) a * b + c % d (a * b)+(c % d) -c % d (-c) %d - a + c % d (- a) + (c % d) - a / - b + c ( (- a) / (- b) ) + c - a / - (b + c) (- a) / (- (b + c)) 29
  • 30. Les opérateurs arithmétiques Il est possible d’écrire des expressions mixtes dans lesquelles interviennent des opérandes de types différents. Le compilateur va mettre en place des instructions de conversion de valeur. Une conversion ou un ajustement de type se fait suivant la hiérarchie suivante: int 🡺 long 🡺 float 🡺 double 30
  • 31. Les opérateurs arithmétiques n est de type int p est de type long x est de type float Conversion de n en long Multiplication par p Le résultat de * est de type long Il est converti en float Pour être additionné à x Ce qui nous fournit un résultat de type float 31
  • 32. Les opérateurs relationnels Opérateur Signification < Inférieur à <= Inférieur ou égal à > Supérieur à >= Supérieur ou égal à == Égal à != Différent de 32
  • 33. Les opérateurs logiques Opérateur Signification ! Négation & Et ^ Ou exclusif | Ou inclusif && Et (avec court-circuit) || Ou inclusif (avec court-circuit) 33
  • 34. Les opérateurs logiques (a<b)&&(c<d) ou (a<b)&(c<d) Prend la valeur true si les deux expressions a<b et c<d sont toutes les deux vraies, la valeur false dans le cas contraire. (a<b)||(c<d) ou (a<b)|(c<d) Prend la valeur true si l’une au moins des deux conditions a<b et c<d est vraie. (a<b)^(c<d) Prend la valeur true si une et une seule des deux conditions a<b et c<d est vraie. !(a<b) Prend la valeur true si la condition a<b est fausse. Les deux opérateurs && et || jouissent d’une propriété intéressante: leur second opérande n’est évalué que si la connaissance de sa valeur est indispensable pour décider si l’expression correspondante est vrai ou fausse 34
  • 35. L’opérateur d’affectation L’opérateur d’affectation = possède une associativité de droite à gauche. On évalue d’abord l’expression j=5 On affecte la valeur 5 à la variable j Enfin on affecte la valeur 5 à la variable i. 35
  • 36. Les opérateurs d’incrémentation et de décrémentation Incrémenter c’est augmenter une variable selon un incrément donné. Décrémenter c’est soustraire une valeur donnée à une variable. On rencontre souvent des expressions telles que Qui incrémentent ou décrémentent de 1. En java, ces actions peuvent être réalisées par des opérateurs unaires. Ainsi l’expression : ++i a pour effet d’incrémenter de 1 la valeur de la variable i, et sa valeur est celle de i après incrémentation. 36
  • 37. Les opérateurs d’incrémentation et de décrémentation Il est important de voir que la valeur de cette expression est celle de i après incrémentation. Ainsi, si la valeur de i est 5, l’expression : n=++i -5 affectera à i la valeur 6 et à n la valeur 1. En revanche, lorsque cet opérateur est placé après l’opérande, la valeur de l’expression correspondante est celle de la variable avant incrémentation. Ainsi, si i vaut 5, l’expression; n=i++ -5 affectera à i la valeur 6 et à n la valeur 0. 37
  • 38. L’opérateur de cast S’il le souhaite, le programmeur peut forcer la conversion d’une expression quelconque dans un type de son choix, à l’aide d’un opérateur un peu particulier nommé cast. Si par exemple, n et p sont des variables de type int, l’expression: (double)(n/p) Aura comme valeur celle de l’expression entière n/p convertie en double. La notation (double) correspond en fait à un opérateur unaire dont le rôle est d’effectuer la conversion dan le type double de l’expression sur laquelle il porte. 38
  • 39. L’opérateur conditionnel Cette instruction attribue à la valeur max la plus grande des deux valeurs de a et de b. En Java, il est possible, grâce à l’opérateur conditionnel, de traduire cette instruction de la manière suivante: Exemple 2: Ici, selon que la condition a>b est vraie ou fausse on incrémentera ou on décrémentera la variable i. 39
  • 40. Les instruction de contrôle de Java L’instruction if L’instruction switch L’instruction for L’instruction do…while L’instruction while Les instruction de branchement inconditionnel break et continue 40
  • 41. L’instruction if L'instruction if est l'instruction de base de toutes les instructions de contrôle (control flow statements). Elle demande à votre programme d'exécuter un certain morceau de code seulement lorsqu'une condition est évaluée comme elle est vraie. Ceci est la structure de l'instruction if : 41
  • 43. L’instruction if L'instruction if-else est également utilisée pour vérifier une condition. Elle va exécuter (execute) if block si la condition est vraie, si la condition est fausse, elle exécute else block. 43
  • 45. L’instruction if La structure d'une instruction if-else est : 45
  • 47. L’instruction switch L'instruction switch vérifie la valeur d'une variable (variable) et compare la variable avec chaque valeur différente de haut en bas. Chaque valeur comparée est surnommée un cas (case). Quand un cas est vrai, le bloc de commande de ce cas sera exécuté (execute). 47
  • 48. L’instruction switch Si tous les cas sont faux, le bloc de commande par défaut sera exécuté. Dans la structure de l'instruction switch, il peut y avoir ou non un bloc de commande défaut. 48
  • 49. L’instruction switch Lorsqu'un vrai cas est trouvé, le bloc de commande de ce cas sera exécuté. S'il n'y a pas de l'instruction break dans ce bloc, le programme exécute le bloc de commandes ci-dessous jusqu'à quand il trouve l'instruction break, ou jusqu'à quand il ne trouve pas de bloc à exécuter. L'instruction break aide le programme à sortir de l'instruction switch. 49
  • 50. L’instruction switch Notez que l'instruction case doit être une valeur précise, vous ne pouvez pas effectuer les opérations suivantes : 50
  • 52. L’instruction switch break est une instruction qui peut apparaître dans le bloc de commande case ou le bloc de commande par défaut de switch. Lorsque le programme attrape l'instruction break, le programme quittera switch. 52
  • 53. L’instruction switch(Récapitulatif) Lorsque le programme rencontre une instruction switch, il vérifie les cas de haut en bas. Lorsque le bloc de commande trouve un vrai cas, il sera exécuté. S'il n'a pas rencontré de l'instruction break dans ce bloc, il continue à exécuter les blocs ci-dessous jusqu'à ce qu'il attrape l'instruction break ou jusqu'à quand il ne trouve aucun bloc à exécuter. 53
  • 55. L’instruction for Dans la programmation informatique (computer programming), une boucle est régulièrement utilisée et le but est d'exécuter un programme à plusieurs reprises. Java prend en charge 3 types de boucles différentes : La boucle for La boucle while La boucle do-while 55
  • 56. L’instruction for La syntaxe de l’instruction for: 56
  • 58. L’instruction for Les résultats d'exécution de la classe ForLoopExample1 : 58
  • 59. L’instruction while La boucle while est utilisée pour exécuter plusieurs fois un segment de programme, quand une condition est toujours true. La boucle while est généralement utilisée lorsque le nombre d'itérations ne peut être déterminé avant (non fixé). Ceci est la structure de boucle while : 59
  • 61. L’instruction do…while La boucle do-while est utilisée pour exécuter un segment de programme plusieurs fois. Les caractéristiques de do-while est un bloc de commande qui est toujours exécuté au moins une fois. Après l'itération (iteration), le programme vérifie la condition, si la condition est toujours vraie, le bloc de commande sera encore exécuté. Ceci est la structure de boucle do-while : 61
  • 63. Les instructions de branchement inconditionnel break et continue L'instruction break peut apparaître dans une boucle. C'est l'instruction qui aide le programme à sortir de la boucle. 63
  • 64. Les instructions de branchement inconditionnel break et continue 64
  • 65. Les instructions de branchement inconditionnel break et continue Le résultat 65
  • 66. Les instructions de branchement inconditionnel break et continue L'instruction continue peut apparaître dans une boucle. Lorsque le programme attrape une instruction continue,il ignore les instructions à l'intérieur du bloc et le bas de l'instruction continue et entame une nouvelle itération (si les conditions sont vraies. ). 66
  • 67. Les instructions de branchement inconditionnel break et continue 67
  • 68. Les instructions de branchement inconditionnel break et continue Le résultat 68
  • 69. Les instructions de branchement inconditionnel break et continue Java permet de coller une étiquette (Label) à une boucle, Ce qui est utile dans le cas d’utilisation des boucles imbriquées dans un programme. Il est possible d’utiliser l'instruction break labelX; Pour break la boucle à étiquette labelX. Vous pouvez utiliser l'instruction continue labelX; Pour continue la boucle à étiquette labelX. 69
  • 70. Les instructions de branchement inconditionnel break et continue 70
  • 71. Les instructions de branchement inconditionnel break et continue 71
  • 72. Les instructions de branchement inconditionnel break et continue 72
  • 73. Les instructions de branchement inconditionnel break et continue L'exemple d'utilisation des boucles imbriquées et d'utilisation l'instruction étiquetée continue 73
  • 74. Les instructions de branchement inconditionnel break et continue 74
  • 75. Les instructions de branchement inconditionnel break et continue Le résultat 75
  • 76. Les tableaux Un tableau est l’équivalent d’une table de taille fixe contenant des valeurs d’un type donné. La taille de la table est appelée sa dimension. Un tableau peut contenir des valeurs scalaires de type int, double, boolean, etc. Il peut également contenir des références sur des objets d’un type donné. Une variable de type tableau se déclare en faisant suivre le type des éléments du tableau par des crochets []. Exemple : 76
  • 77. Les tableaux Une variable de type tableau doit être initialisée en créant un tableau. Sinon, un accès à un élément du tableau provoquera une erreur. L’initialisation se fait avec l’instruction new suivi du type des éléments du tableau suivi de la dimension entre crochet. Exemple : 77
  • 78. Les tableaux La dimension du tableau est choisie à a création du tableau. Elle ne peut plus être modifié. Les éléments d’un tableau de dimension n sont numérotés de 0 à n-1. Le numéro d’un élément dans un tableau est appelé son indice. Pour accéder à un élément du tableau à partir de son indice, on fait suivre le nom de la variable de type tableau du crochet ouvrant, de l’indice et du crocher fermant. Exemple: Si l’on a déclaré et initialisé la variable names : On peut accéder à l’élément d’indice 7 avec la notation names[7] : 78
  • 79. Tableau à plusieurs dimensions Lors d’une définition de tableau le nombre de crochets indique le nombre de dimensions du tableau. L’instruction suivante définit un tableau à 2 dimensions 5 lignes sur 10 colonnes ( ou l’inverse ). 79
  • 80. Tableau à plusieurs dimensions Un tableau à plusieurs dimensions peut être initialisé : T21 définit un tableau dont la première dimension va de l'indice 0 à l'indice 1 et la deuxième dimension de l'indice 0 à l'indice 2. 80
  • 81. Tableau à plusieurs dimensions Toutes les lignes d’un tableau à 2 dimensions n’ont pas forcément le même nombre d’éléments : 81