Telechargé par houssemeddine.nouri

Chapitre-3-Java-

publicité
Chapitre 3 : JAVA
Hassan El Bahi
www.elbahihassan.com
Plan
Qu’est ce que java?
Variables / L'affectation
Comparaisons / conversions
Structures de contrôle
Les entrée/Sortie
Tableaux
Hassan El Bahi
www.elbahihassan.com2
Qu’est ce que java?
Java est un langage de programmation moderne développé par
Sun Microsystems (aujourd'hui racheté par Oracle).
Il ne faut surtout pas le confondre avec JavaScript (langage de
scripts utilisé principalement sur les sites web), car Java n'a rien à
voir.
Langage de programmation orienté objet
Les programmes java sont multi plate-forme
Langage haute sécurité
langage adapté aux systèmes de communications (programmation
distribuée).
3
Qu’est ce que java?
On peut faire de nombreuses sortes de programmes avec Java :
des applications, sous forme de fenêtre ou de console.
des applets, qui sont des programmes Java incorporés à des
pages web
des applications pour appareils mobiles, avec J2ME.
et bien d'autres ! J2EE, JMF, J3D pour la 3D...
4
Compilation d’un programme Java
En Java, le code source n'est pas traduit directement dans le
langage de l'ordinateur. Il est d'abord traduit dans un langage
appel bytecode ", langage d'une machine virtuelle (JVM _ Java
Virtual Machine).
5
Qu’est ce que java?
6
Cycle de développement
Les phases d’écriture et de correction se fait à l’aide d’un éditeur
de texte (emacs, geany, gedit, Notepad++, . . . ) ou d’une EDI
(netbeans , eclipse , …)
Exemple: Notepad++ Salut.java
La phase de compilation se fait à l’aide de la commande javac.
Exemple: javac Salut.java
La compilation produit un fichier .class.
Exemple: le fichier Salut.class est généré par le compilateur
La phase d’interprétation se fait à l’aide de la commande java.
Exemple: java Salut
7
variables
o Une variable est décrite à l’aide de trois caractéristiques :
- Son identificateur qui est le nom par lequel la donnée est désignée.
Exemples : b, delta, myWindow, ...;
- Son type qui définit de quel genre est la donnée associée à la variable,
en particulier, quels traitements elle peut (et ne peut pas) subir.
Exemples : double, int, String, ...
- Sa valeur littérale qui permet de définir sa valeur. Par exemple, si la
donnée est un nombre, sa représentation pourra être (selon les
conventions de représentation) :
Exemples :123, -18, 3.1415, 2e-13, . . .
o La syntaxe de la déclaration d’une variable est :
type identificateur ;
8
Déclaration et initialisation de variables
Les principaux types élémentaires définis en Java sont :
• int : les nombres entiers.
• double : les nombres réels.
• char : les caractères.
• boolean : les valeurs logiques “vrai” (true) et “faux” (false)
• float : est utilisé pour les nombres avec une virgule flottante.
• String : Le type String permet de gérer les chaînes de
caractères, c'est-à-dire le stockage de texte.
Note : nous verrons plus tard d’autres types : les types composés et
la généralisation des types par la notion de classe
9
Déclaration et initialisation de variables
En même temps qu’elle est déclarée, une variable peut être
initialisée, c’est-à-dire qu’on lui donne une première valeur avant
même toute utilisation.
La syntaxe de la déclaration/initialisation d’une variable est :
type identificateur = valeur_d’initialisation;
où valeur_d’initialisation est n’importe quelle constante
(i.e., valeur littérale) ou expression du type indiqué.
Exemples :
int val = 2;
double pi = 3.1415;
char c = ’a’;
int j = 2*val+5;
String phrase = "cours système réparti";
10
Déclaration et initialisation de variables
les noms de variables en Java peuvent commencer par une lettre,
par le caractère de soulignement ou par le signe dollar. 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.
Exemple :
int jour, mois, annee;
11
Variable Final
• La valeur d’une variable déclarée final ne peut pas être
modifiée après avoir été initialisée
• Une telle variable est similaire à une constante dans les autres
langages de programmation
• Pour déclarer une variable final :
final int A_FINAL_VAR = 0;
12
Variables = zone mémoire
Exemple :
• int i = 121;
• char car = ’C’;
• double x = 12.98705;
13
Commentaire
• /* commentaire sur une ou plusieurs lignes */
– Identiques à ceux existant dans le langage C
• // commentaire de fin de ligne
– Identiques à ceux existant en C++
• /** commentaire d'explication */
– Les commentaires d'explication se placent
généralement juste avant une déclaration (d'attribut
ou de méthode)
– Ils sont récupérés par l'utilitaire javadoc et inclus
dans la documentation ainsi générée.
14
Instructions, blocs et blancs
• Les instructions Java se terminent par un ;
• Les blocs sont délimités par :
{ pour le début de bloc
} pour la fin du bloc
Un bloc permet de définir un regroupement
d’instructions. La définition d’une classe ou d’une
méthode se fait dans un bloc.
• Les espaces, tabulations, sauts de ligne sont
autorisés. Cela permet de présenter un code plus
lisible.
15
Point d’entrée d’un programme Java
• Pour pouvoir faire un programme exécutable il faut
toujours une classe qui contienne une méthode
particulière, la méthode « main »
o c’est le point d’entrée dans le programme : le
microprocesseur sait qu’il va commencer à
exécuter les instructions à partir de cet endroit
public static void main(String arg[ ])
{
………….
…………
}
16
L'affectation
le signe = est l'opérateur d'affectation et s'utilise avec une
expression de la forme:
o
variable = expression;
L'opération d'affectation est associative de droite à gauche : il
renvoie la valeur affectée ce qui permet d'écrire :
x = y = z = 0;
17
L'affectation
Il existe des opérateurs qui permettent de simplifier l'écriture d'une
opération d'affectation associée à un opérateur mathématique :
Opérateur
Exemple
Signification
=
a=10
équivalent à : a = 10
+=
a+=10
équivalent à : a = a + 10
-=
a-=10
équivalent à : a = a - 10
*=
a*=10
équivalent à : a = a * 10
/=
a/=10
équivalent à : a = a / 10
%=
a%=10
reste de la division
^=
a^=10
équivalent à : a = a ^ 10
18
Les comparaisons :
Java propose des opérateurs pour toutes les comparaisons :
Opérateur
Exemple
Signification
>
a > 10
strictement supérieur
<
a < 10
strictement inférieur
>=
a >= 10
supérieur ou égal
<=
a <= 10
inférieur ou égal
==
a == 10
Egalité
!=
a != 10
diffèrent de
&&
a && b
ET logique pour expressions booléennes
||
a || b
OU logique pour expressions booléennes
19
Les comparaisons :
Opérateur
?:
Exemple
a?b:c
Signification
opérateur conditionnel : renvoie la valeur b
ou c selon l'évaluation de l'expression a (si
a alors b sinon c) : b et c doivent retourner
le même type
Exemple :
x = ( y < 5 ) ? 4 * y : 2 * y;
Equivalent à:
If ( y < 5 )
x = 4 * y ;
else
x= 2 * y ;
20
Les conversions, ou « cast »
Un cast peut être effectué simplement en faisant précéder la valeur
par l'indication du nouveau type entre parenthèses, par exemple: :
- D'un type int en type float :
int i = 123;
float j = (float)i;
- D'un type int en double :
int i = 123;
double j = (double)i;
21
Les conversions, ou « cast »
double i = 1.23;
double j = 2.9999999;
int k = (int)i;
k = (int)j;
//k vaut 1
//k vaut 2
int i;
double d;
i = 5 / 2; // Oui, 2
d = 5.0 / 2.0; // Oui, 2.5
d = 5.0 / 2; // Oui, 2.5
d = 5 / 2.0; // Oui, 2.5
d = 5 / 2; // Oui, 2.0 i = 5 / 2.0; // Non
i = (int) (5 / 2.0); // Oui, 2
22
Structures de contrôle
L'instruction conditionnelle if : La syntaxe de l'instruction if
peut être décrite de la façon suivante:
if (expression) instruction;
Ou :
if (expression) {
instruction1;
instruction2;
}
23
Structures de contrôle
L'instruction conditionnelle else
if (expression) {
instruction1;
} else {
instruction2;
}
Exemple :
if (a<b) {
min=a;
} else {
min=b;
}
24
Structures de contrôle
Les instructions conditionnelles imbriquées
if (expression1) {
bloc1;
}
else if (expression2) {
bloc2;
}
else if (expression3) {
bloc3;
} else {
bloc5;
}
25
Structures de contrôle
L'instruction switch : la syntaxe est la suivante:
Switch ( variable ) {
Case valeur1 : instructions1 ; break;
Case valeur2 : instructions2 ; break;
Case valeur3 : instructions2 ; break;
. .
Case valeurN : instructionsN ; break;
Default : instructions ; break;
}
26
Structures de contrôle
Exemple : L'instruction switch
switch (month) {
case 1: System.out.println("January"); break;
case 2: System.out.println("February"); break;
case 3: System.out.println("March"); break;
case 4: System.out.println("April"); break;
case 5: System.out.println("May"); break;
case 6: System.out.println("June"); break;
case 7: System.out.println("July"); break;
case 8: System.out.println("August"); break;
case 9: System.out.println("September"); break;
case 10: System.out.println("October"); break;
case 11: System.out.println("November"); break;
case 12: System.out.println("December"); break;
default: System.out.println("Invalid month.");break;
}
27
Structures de contrôle
La boucle for : La boucle for est une structure employée pour
exécuter un bloc d'instructions un nombre de fois en principe
connu à l'avance. Elle utilise la syntaxe suivante:
for (int i=0 ; i<limite ; i=i+increment) {
instructions;
}
Exemple :
for (inti = 2; i < 10;i++) {
System.out.println("Vive Java !");
}
28
Structures de contrôle
L’instruction While
while (condition){
Instructions;
}
Exercice : qu’affiche le code suivant ?
int i=5;
while (i > 1) {
System.out.print(i + " ");
i = i / 2 ;
}
Réponse :
52
29
Structures de contrôle
L’instruction do .. while
do{
Instructions;
} while (condition)
Exercice : qu’affiche le code suivant ?
int i=10;
do{
System.out.print(i + " ");
i = i / 2 ; }
while (i > 1)
Réponse :
10 5 2
30
Structures de contrôle
Exercice : qu’afficheront les codes suivants ?
int i=0;
do{
System.out.print(i);
i = i / 2 ;
} while (i > 1)
n’affichera rien !
int i=0;
while (i > 1) {
System.out.print(i);
i = i / 2 ;
}
affichera:
0
31
Les entrée/Sortie
Java propose des flux d’entrée et de sortie pour communiquer
avec l’utilisateur.
Affichages :
System.out.print(…);
Ou bien :
System.out.println(…);
Lecture (d’un entier):
Scanner keyb = new Scanner(System.in);
int i = keyb.nextInt();
32
Tableaux
Création d'un tableau
int monTableau[ ] = new int[10];
Ou
int [ ] monTableau = new int[10];
- L'opérateur [ ] permet d'indiquer qu'on est en train de déclarer un
tableau.
- Dans l'instruction précédente, nous déclarons un tableau d'entiers
(int, integer) de taille 10, c'est-à-dire que nous pourrons stocker 10
entiers dans ce tableau.
33
Tableaux
Remplissage d'un tableau
- Une fois le tableau déclaré et instancié, nous pouvons le remplir :
int [] monTableau = new int[10];
monTableau[5] = 23;
- L'indexation démarre à partir de 0, ce qui veut dire que, pour un tableau de N
éléments, la numérotation va de 0 à N-1.
- Dans l'exemple ci-dessus, la 6ème case contient donc la valeur 23.
- Nous pouvons également créer un tableau en énumérant son contenu
int [] monTableau = {5,8,6,0,7};
34
Tableaux
Lecture d'un tableau
- Pour lire ou écrire les valeurs d'un tableau, il faut ajouter l'indice entre crochets
([i]) à la suite du nom du tableau : :
int [] monTableau = {2,3,5,7,11,15,17};
int nb;
monTableau[5] = 23; // -> 2 3 5 7 11 23 17
nb = monTableau[4]; // 11
35
Tableaux
Lecture d'un tableau
- L'indice 0 désigne le premier élément du tableau.
- L'attribut length d'un tableau donne sa longueur (le nombre d'éléments). Donc
pour un tableau nommé monTableau l'indice du dernier élément est
monTableau.length-1.
- Ceci est particulièrement utile lorsque nous voulons parcourir les éléments d'un
tableau.
for (int i = 0; i < monTableau.length; i++) {
int element = monTableau[i];
// traitement
}
36
Tableaux à plusieurs dimensions
- En Java, les tableaux à plusieurs dimensions sont en fait des tableaux de
tableaux.
- Exemple, pour allouer une matrice de 5 lignes de 6 colonnes :
int[][] matrice=new int[5][6];
- On peut également remplir le tableau à la déclaration
int[][] matrice =
{
{ 0, 1, 4, 3 } , // tableau [0] de int
{ 5, 7, 9, 11, 13, 15, 17 } // tableau [1] de int
};
37
Tableaux à plusieurs dimensions
- Pour déterminer la longueur des tableaux, on utilise également l'attribut length :
matrice.length // 2
matrice[0].length // 4
matrice[1].length // 7
- De la même manière que précédement, on peut facilement parcourir tous les
éléments d'un tableau :
int i, j;
for(i=0; i<matrice.length; i++) {
for(j=0; j<matrice[i].length; j++){
//Action sur matrice[i][j]
}
}
38
Merci pour votre attention
39
Téléchargement