SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Module M19
La programmation orientée objet JAVA
Année universitaire
2015/2016
Université Hassan II Casablanca
Ecole normale supérieure (ENS)
Master Mathématiques, Cryptologie et Sécurité Informatique (MMCSI)
Mohamed Lahby
mlahby@gmail.com
Objectifs du Module 19
Maîtriser la programmation en langage JAVA
 Maîtriser les fonctionnalités cryptographiques de
base en JAVA
Les objectifs
Contenu du Module 19
Chapitre 1 : Programmation classique avec JAVA
Chapitre 2 : Programmation orientée objet (POO) avec JAVA
Chapitre 3 : Les classes abstraites et les interfaces
Chapitre 4 : La gestion des exceptions
Chapitre 5 : Les threads
Chapitre 5 : Les collections
Chapitre 6 : Java et les bases de données
Chapitre 7 : Les interfaces graphiques
Chapitre 8 : La gestion de la sécurité avec JAVA
Chapitre 9 : L'architecture JCA (Java Cryptography Architecture)
Chapitre 10 : API JCE ( Java Cryptography Extension)
Les chapitres
Programmation classique avec JAVA
Chapitre 1
Programmation classique avec JAVA
Plan du cours
1. Généralités sur la programmation
2. Environnement d’exécution de JAVA
3. Premier programme en JAVA
4. Les données en JAVA– les primitives
5. Les tableaux de données
6. Les opérateurs
7. Les structures de contrôle
8. Les méthodes et la surcharge des méthodes
Java
04/10/2015
6
• Java: Langage de programmation orienté objet créé par James Gosling et
Patrick Naughton, employés de Sun Microsystems. Il est présenté au public en
1995.
• Java reprend en grande partie la syntaxe du langage C++.
• Au contraire de C++, Java assure plusieurs exigences:
• Portabilité totale quelque soit l’OS à travers l’usage de la JVM.
• Meilleure gestion de la mémoire à travers le « ramasse miette ».
• Sécurité davantage à travers l’usage de la JVM.
• Renforcement de l’orienté objet.
Java – Environnement
04/10/2015
7
• JDK: Java Development Kit (Kit de développement en java). Désigne un
ensemble de bibliothèques nécessaires à la programmation avec java.
• Avec le temps, plusieurs éditions de JDK sont apparues:
• JSDK : Java Standard Developpement Kit, pour développer les
application DeskTop
• JME : Java Mobile Edition, pour développer les applications pour les
téléphones potables
• JEE : Java Entreprise Edition, pour développer les applications qui vont
s’exécuter dans un serveur d’application JEE (Web Sphere Web Logic,
JBoss).
• JCA : Java Card Editon, pour développer les applications qui vont
s’éxécuter dans des cartes à puces.
Java – Environnement
04/10/2015
8
• Les programmes nécessaire au développement java sont placés dans le
répertoire C:Program FilesJavajdk1.7.0_21bin à savoir:
• javac.exe : Compilateur java.
• java.exe : Interpréteur du bytecode java.
• appletviewer.exe : Pour tester les applets java.
• Jdb.exe : Débogueur java.
• Javap.exe : désassembleur du bytecode.
• Javadoc.exe : Générer la documentation de vos programmes java.
• Javah.exe : Permet de lier des programmes Java avec des méthodes natives,
écrites dans un autre langage et dépendant du système.
• jar.exe : Permet de compresser les classes Java ainsi que tous les fichiers
nécessaires à l'exécution d'un programme (graphiques, sons, etc.). Il permet en
particulier d'optimiser le chargement des applets sur Internet.
• jarsigner.exe : Un utilitaire permettant de signer les fichiers archives produits
par jar.exe.
Java – Environnement
04/10/2015
9
Java – Environnement
04/10/2015
10
• JRE: Java Runtime Environment (Environnement d’exécution java). Considéré
comme une plateforme informatique au même titre qu'un système
d'exploitation qui permet aux programmes java de s’exécuter sur différents
environnements.
• Machine virtuelle (JVM): Machine informatique fictive. Elle exécute
des programmes compilés sous forme de bytecode Java.
• Java API Classes: contient les bibliothèques standards de java
JRE
Java API Classes
Java Virtual Machine
Java – Environnement d’exécution
04/10/2015
11
JVM JVM JVM
MAC Linux Windows
ByteCode
Test.class
Javac Test.java
Test.java
Portabilité
Java – Premier programme (sans IDE)
04/10/2015
12
• Ecrire mon premier programme:
• Compiler mon premier programme:
• Exécuter mon premier programme:
Création de Test.java
Avec Bloc-notes
(Code source)
Compilation de Test.java
Avec javac Test.java
Crée Test.class
(ByteCode)
Exécution de Test.class
Avec java Test
Exécute le programme
Java – Premier programme (sans IDE)
04/10/2015
13
Définir la variable d’environnement path qui
indique le chemin d'accès aux programmes
exécutables : Cette variable path devrait
contenir le chemin du JDK utilisé:
C:Program FilesJavajdk1.7.0_21bin
Quand elle exécute une application java, la
JVM consulte la variable d’environnement
classpath qui contient le chemin d’accès aux
classes java utilisées par cette application.
Accès aux exécutables de JDK
Java – Premier programme (sans IDE)
04/10/2015
14
• Le nom du fichier java doit être le même que celui de la classe qui contient la
fonction principale main.
• Pour compiler le programme source, il faut faire appel au programme javac.exe
qui se trouve dans le dossier C:Program FilesJavajdk1.7.0_21bin
• Pour rendre accessible ce programme depuis n ’importe quel répertoire, il faut
ajouter la commande : path C:Program FilesJavajdk1.7.0_21bin
javac Test.java
• Après compilation du programme Test.java, il y a génération du fichier Test.class
qui représente le ByteCode du programme
• Pour exécuter ce programme en byte code, il faut faire appel au programme
java.exe qui représente l’interpréter du bytecode.
java Test
Remarques
Java – Les IDE
04/10/2015
15
Pour la création des programmes en Java, il est préférable de:
Utiliser un éditeur conçu pour la programmation java
• Ultraedit, JCreator, ….
• Eclipse, environnement de développement java le plus
préféré pour les développeurs java. Il est gratuit et ouvert.
• Autres IDE java :
• JDevlopper de Oracle
• JBuilder de Borland.
• NetBeans
Outils de développement
Java – Les données primitives
04/10/2015
16
Java dispose des primitives suivantes :
Type Signification Taille
(en octets)
Plage de valeurs acceptées
char Caractère Unicode 2 0 à 65535
byte Entier très court 1 -128 à 127
short Entier court 2 -32 768 à 32 767
int Entier 4 -2 147 483 648 à + 2 147 483
647
long Entier long 8 -9,223×1018 à 9,223×1018
float Nombre réel simple 4 1.4×10-45 à 3.4×1038
double Nombre réel double 8 4,9×10-324 à 1,8×10308
boolean Valeur logique (booléen) 1 true (vrai), ou false (faux)
Java – Les données primitives
04/10/2015
17
Les primitives sont utilisées de façon très simple. Elles doivent
être déclarées avec une syntaxe similaire au langage C, par
exemple :
int i;
char c;
boolean fini;
Les primitives peuvent être initialisées en même temps que la
déclaration.
int i = 12;
char c = 'a';
boolean fini = true;
Utilisation des primitives
Java – Les données primitives
04/10/2015
18
• Comment choisir le nom d’une variable:
Pour respecter la typologie de java, les nom des variables
commencent toujours par un caractère en minuscule et pour
indiquer un séparateur de mots,on utilise les majuscules.
Exemples:
int nbPersonnes;
boolean estFini;
• Valeurs par défaut des primitives:
Toutes les primitives de type numérique utilisées comme
membres d'un objet sont initialisées à la valeur 0. Le type
boolean est initialisé à la valeur false.
• Définir une constante:
final double pi=3.14159 // impossible de la changer par la suite
Utilisation des primitives
Java – Les données primitives
04/10/2015
19
Sur-casting : Le sur-casting peut se faire
implicitement ou explicitement.
Exemples :
int a=6; // le type int est codé sur 32 bits
long b; // le type long est codé sur 64 bits
Casting implicite :
b=a;
Casting explicite
b=(long)a;
Sous-Casting : Le sous-casting ne peut se faire
qu’explicitement.
1: float a = (float)5.5;
2 : double b = 8;
3 : byte c = (byte)b;
3. int d=4;
4: byte e=(byte)d;
Casting des primitives
double
int
double
float
double
byte
int
byte
Java – package
04/10/2015
20
• Un package est un ensemble de dossiers et de sous-dossiers.
• C’est un mécanisme d’organiser les classes java de l’ensemble projet (un projet peut
avoir plusieurs classes)
• Il est utilisé pour organiser les classes par catégorie ou offrant la même nature de
fonctionnalités
• Il est possible de le compresser dans un dossier jar
• Son mode d’emploi:
• instruction écrite en début de la classe ayant la forme
package pack1; // le fichier .class doit appartenir au dossier pack1
package com.gl.java; // le fichier .class doit appartenir au dossier comgljava
• Le nom du package est soumis à une convention de nommage.
• Si vous voulez utiliser un mot clé Java dans le nom de votre package, vous devez
le faire suivre d'un underscore (« _ »).
Package (cf Chapitre POO)
Java – package
04/10/2015
21
• Il est possible d’utiliser les fonctionnalités offertes par une autre classe qui existe
dans un autre package du même projet
• Pour ce faire, on utilise l’instruction pour utiliser une classe précise (nom_classe)
import chemin_package.nom_classe;
• Ou bien, pour utiliser la plus part ou la totalité des classes d’un package
import chemin_package
• Exemple (la classe Scanner permet de lire les données au clavier)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.print("Donner un nombre:");
Scanner clavier=new Scanner(System.in);
int nb=clavier.nextInt();
System.out.println("le nombre lu au clavier est: " +nb);
}
}
Utiliser les classes (cf Chapitre POO) d’un package
Programme permettant
de lire des entrées de
type entier
Java – Les tableaux de données primitives
04/10/2015
22
• En java, un tableau est une structure de données contenant un
groupe d'éléments ayant le même type.
• Lors de la définition d’un tableau, les [] précisent qu’il s’agit d’un
tableau.
• Les [] peuvent être placés avant ou après le nom du tableau.
type_primitif T[] précise qu’il s’agit d’un tableau à une dimension
type_primitif T[] [] précise qu’il s’agit d’un tableau à deux
dimensions
Les déclarations suivantes: int T[] ={1,5,7} et int [] T={1,5,7} sont
les mêmes.
Java – Les opérateurs
04/10/2015
23
Opérateur d ’affectation:
•x=3; // x reçoit 3
•x=y=z=w+5; // z reçoit w+5, y reçoit z et x reçoit y
Les opérateurs arithmétiques à deux opérandes:
•+ : addition
•- : soustraction
•* : multiplication
•/ : division
•% : modulo (reste de la division euclidienne)
Java – Les opérateurs
04/10/2015
24
Les opérateurs arithmétiques à deux opérandes (Les raccourcis)
x = x + 4; ou x+=4;
z = z * y; ou Z*=y;
v = v % w; ou v%=w;
Les opérateurs relationnels:
•== : équivalent
•< : plus petit que
•> : plus grand que
•<= : plus petit ou égal
•>= : plus grand ou égal
•!= : non équivalent
Les opérateurs d’incrémentations et de décrémentation:
++ : Pour incrémenter (i++ ou ++i)
-- : Pour décrémenter (i–- ou --i)
Java – Les opérateurs
04/10/2015
25
Les opérateurs logiques
&& Et (deux opérandes)
|| Ou (deux opérandes )
! Non (un seul opérande)
L'opérateur à trois opérandes ?:
Affectation condition ? expression_si_vrai : expression_si_faux
exemple : x = (y < 5) ? 4 * y : 2 * y;
Equivalent à :
if (y < 5)
x = 4 * y;
else
x = 2 * y;
Java – Les structures de contrôle
04/10/2015
26
If (condition)
Bloc d’instructions 1;
Else
Bloc d’instruction 2;
NB :La partie de Else peut être absente
Les structures de choix simple
Ecrire un programme qui lit au clavier la variable moyenne et qui permet d’afficher à l’écran «
Validé (é) » si la moyenne est supérieure ou égale à 12 et « non validé (e) » si non.
Exemple
Java – Les structures de contrôle
04/10/2015
27
Java permet d'écrire ce type de structure sous la forme :
if (Condition 1) {
bloc1;
}
else if (Condition 2) {
bloc2;
}
else if (Condition 3) {
bloc3;
}
else {
bloc4;
}
Les structures de choix imbriquées
Compléter le programme précédent de manière à afficher le résultat accompagné de la mention
Exemple
Java – Les structures de contrôle
04/10/2015
28
Syntaxe :
switch( variable) {
case valeur1: instr1;break;
case valeur2: instr2;break;
case valeurN: instrN;break;
default: instr;break;
}
Les structures de cas
Ecrire un programme permettant d’afficher le jour correspondant à un nombre lu au clavier.
Si le nombre entré ne se trouve pas dans l’intervalle [1-7] afficher un message d’erreur.
1 Lundi
…
7 Dimanche
Exemple
Java – Les structures de contrôle
04/10/2015
29
• Une boucle est une structure de contrôle destinée à exécuter
une portion de code plusieurs fois.
• La structure de contrôle branchant le pointeur ordinal au début
de cette portion tant qu'une condition de continuation est
remplie ou, selon les boucles, qu'une condition de sortie n'est pas
remplie.
• Normalement, une boucle s'exécute selon le cas, soit un nombre
de fois connu à l'avance, soit jusqu'à ce qu'une condition permette
de sortir de la boucle.
• Il arrive toutefois qu'une erreur de programmation fasse que la
condition ne devienne jamais vraie. Le programme s'exécute alors
indéfiniment à l'intérieur de cette boucle infinie.
Les structures de contrôle répétitives (Boucles)
Java – Les structures de contrôle
04/10/2015
30
for (initialisation;test;incrémentation) {
instructions;
}
Exemple :
for (int i = 2; i < 10;i++) {
System.out.println("I="+i);
}
Boucle for
Java – Les structures de contrôle
04/10/2015
31
Sortie d'une boucle par return
int[] tab=new int[]{4,6,5,8};
for (int i = 0; i < tab.length; i++) {
if (tab[i] == 5) {
return i;
}
Branchement au moyen des instructions break et continue
break:
int x = 10;
for (int i = 0; i < 10; i++) {
x--;
if (x == 5) break;
}
System.out.println(x);
continue:
for (int i = 0; i < 10; i++) {
if (i == 5) continue;
System.out.println(i);
}
Java – Les structures de contrôle
04/10/2015
32
L a boucle While
while (condition){
BlocInstructions;
}
L a boucle do .. while
do{
BlocInstructions;
}
while (condition);
Exemple :
int s=0;int i=0;
do{
s+=i;
i++;
}while (i<10);
System.out.println("Somme="+s);
Exemple :
int s=0;int i=0;
while (i<10){
s+=i;
i++;
}
System.out.println("Somme="+s);
Java – Les fonctions
04/10/2015
33
Une fonction en Java:
• fait une tâche
• a un nom
• reçoit des paramètres en cas de besoin
• Retourne un résultat si nécessaire
Exemple
public static float appliquer_tva(float somme){
return somme+somme*20/100;
}
Float: le type de retour de la fonction
Appliquer_tva: le nom de la fonction
Float somme: le seul paramêtre de la fonction
NB: clés public et static (cf chapitre de la POO)
Java – Les fonctions
04/10/2015
34
La surcharge des fonctions:
• La surcharge d’une fonction consiste à garder le même nom
• Il s’agit d’un changement dans la signature de la fonction (type et nombre de paramètres)
Exemple
static void parcourirTableau(String[] tab)
{
for(String str : tab)
System.out.println(str);
}
static void parcourirTableau(int[] tab)
{
for(int str : tab)
System.out.println(str);
}
static void parcourirTableau(int[] tab,int i)
{
for(int d : tab)
System.out.println(d*i);
}
Java – Les fonctions
04/10/2015
35
La récursivité désigne le concept dans lequel une fonction appelle dans son elle-
même.
Exemple
public static void r(int n){
System.out.println(n*n);
if (n>0)
r(n-1);
System.out.println(n);
}
Public static void main(String arg[]){
r(5);
}
La récursivité
0
1
2
3
4
5
Le résultat de ce programme est:
Java – Les fonctions
04/10/2015
36
Ecrit une fonction qui reçoit en paramètre un entier n, et retourne la somme des
n premier nombres.
Solution1: en utilisant une fonction classique
Solution 2: en utilisant une fonction récursive
Exercice 1
Java – Les fonctions
04/10/2015
37
Exercice 2
public class Test {
public static void main (String[] args) {
int var1 = 1, var2 = 5;
System.out.println("Avant l'appel de la méthode : "+var1+" "+var2);
modifier (var1, var2);
System.out.println("Après l'appel de la méthode : "+var1+" "+var2);
}
public static void modifier (int var1, int var2) {
var1 += 4;
var2 += 7;
}
}
Donner le résultat du programme suivant:
Avant l'appel de la méthode : 1 5
Après l'appel de la méthode : 1 5Résultat:
Java
04/10/2015
38
Fin de la première partie
•Questions et réponses
•Truc et astuces
•TD à Corriger
•Exercices à rendre

Contenu connexe

Tendances

Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données IIRiadh Bouslimi
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetMouna Torjmen
 
QCM système d'information
QCM système d'informationQCM système d'information
QCM système d'informationFrust Rados
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Faycel Chaoua
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...ENSET, Université Hassan II Casablanca
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Aziz Darouichi
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Amina HAMEURLAINE
 
Poo en c++ les relations entre classes
Poo en c++ les relations entre classesPoo en c++ les relations entre classes
Poo en c++ les relations entre classesAmina HAMEURLAINE
 

Tendances (20)

Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
QCM système d'information
QCM système d'informationQCM système d'information
QCM système d'information
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Poo en c++ les relations entre classes
Poo en c++ les relations entre classesPoo en c++ les relations entre classes
Poo en c++ les relations entre classes
 

En vedette

Chapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisChapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisMohamed Lahby
 
Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur Mohamed Lahby
 
Chapitre 8: Les arbres
Chapitre 8: Les  arbresChapitre 8: Les  arbres
Chapitre 8: Les arbresMohamed Lahby
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfwebreaker
 
Chap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueChap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueMohamed Lahby
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIMohamed Lahby
 

En vedette (9)

Langage c partie_2
Langage c partie_2Langage c partie_2
Langage c partie_2
 
Chapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisChapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de tris
 
Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur
 
Chapitre 8: Les arbres
Chapitre 8: Les  arbresChapitre 8: Les  arbres
Chapitre 8: Les arbres
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
 
Chap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueChap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmique
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSI
 
Java interfaces
Java interfacesJava interfaces
Java interfaces
 
Java tutorial PPT
Java tutorial PPTJava tutorial PPT
Java tutorial PPT
 

Similaire à Programmation Java

Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Jean-Michel Doudoux
 
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfdevoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfJean-Michel Doudoux
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdfOmbotimbe Salifou
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfLarbaSAWADOGO2
 
Java uik-chap2-dev java
Java uik-chap2-dev javaJava uik-chap2-dev java
Java uik-chap2-dev javaAmel Morchdi
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Jean-Michel Doudoux
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptxRihabBENLAMINE
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Jean-Michel Doudoux
 
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Jean-Michel Doudoux
 
Formation JAVA (1)
Formation JAVA (1)Formation JAVA (1)
Formation JAVA (1)Ahmed Charef
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxRihabBENLAMINE
 
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)SmartnSkilled
 

Similaire à Programmation Java (20)

Présentation1
Présentation1Présentation1
Présentation1
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfdevoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Base11
Base11Base11
Base11
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Java uik-chap2-dev java
Java uik-chap2-dev javaJava uik-chap2-dev java
Java uik-chap2-dev java
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
 
XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10
 
Maven
MavenMaven
Maven
 
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018
 
Formation JAVA (1)
Formation JAVA (1)Formation JAVA (1)
Formation JAVA (1)
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptx
 
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
 

Dernier

Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementM2i Formation
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxMartin M Flynn
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024frizzole
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2JeanLucHusson
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniquessuser4dbdf2
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionslaetitiachassagne
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFEAhmam Abderrahmane
 

Dernier (7)

Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changement
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptx
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin technique
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositions
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFE
 

Programmation Java

  • 1. Module M19 La programmation orientée objet JAVA Année universitaire 2015/2016 Université Hassan II Casablanca Ecole normale supérieure (ENS) Master Mathématiques, Cryptologie et Sécurité Informatique (MMCSI) Mohamed Lahby mlahby@gmail.com
  • 2. Objectifs du Module 19 Maîtriser la programmation en langage JAVA  Maîtriser les fonctionnalités cryptographiques de base en JAVA Les objectifs
  • 3. Contenu du Module 19 Chapitre 1 : Programmation classique avec JAVA Chapitre 2 : Programmation orientée objet (POO) avec JAVA Chapitre 3 : Les classes abstraites et les interfaces Chapitre 4 : La gestion des exceptions Chapitre 5 : Les threads Chapitre 5 : Les collections Chapitre 6 : Java et les bases de données Chapitre 7 : Les interfaces graphiques Chapitre 8 : La gestion de la sécurité avec JAVA Chapitre 9 : L'architecture JCA (Java Cryptography Architecture) Chapitre 10 : API JCE ( Java Cryptography Extension) Les chapitres
  • 5. Programmation classique avec JAVA Plan du cours 1. Généralités sur la programmation 2. Environnement d’exécution de JAVA 3. Premier programme en JAVA 4. Les données en JAVA– les primitives 5. Les tableaux de données 6. Les opérateurs 7. Les structures de contrôle 8. Les méthodes et la surcharge des méthodes
  • 6. Java 04/10/2015 6 • Java: Langage de programmation orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems. Il est présenté au public en 1995. • Java reprend en grande partie la syntaxe du langage C++. • Au contraire de C++, Java assure plusieurs exigences: • Portabilité totale quelque soit l’OS à travers l’usage de la JVM. • Meilleure gestion de la mémoire à travers le « ramasse miette ». • Sécurité davantage à travers l’usage de la JVM. • Renforcement de l’orienté objet.
  • 7. Java – Environnement 04/10/2015 7 • JDK: Java Development Kit (Kit de développement en java). Désigne un ensemble de bibliothèques nécessaires à la programmation avec java. • Avec le temps, plusieurs éditions de JDK sont apparues: • JSDK : Java Standard Developpement Kit, pour développer les application DeskTop • JME : Java Mobile Edition, pour développer les applications pour les téléphones potables • JEE : Java Entreprise Edition, pour développer les applications qui vont s’exécuter dans un serveur d’application JEE (Web Sphere Web Logic, JBoss). • JCA : Java Card Editon, pour développer les applications qui vont s’éxécuter dans des cartes à puces.
  • 8. Java – Environnement 04/10/2015 8 • Les programmes nécessaire au développement java sont placés dans le répertoire C:Program FilesJavajdk1.7.0_21bin à savoir: • javac.exe : Compilateur java. • java.exe : Interpréteur du bytecode java. • appletviewer.exe : Pour tester les applets java. • Jdb.exe : Débogueur java. • Javap.exe : désassembleur du bytecode. • Javadoc.exe : Générer la documentation de vos programmes java. • Javah.exe : Permet de lier des programmes Java avec des méthodes natives, écrites dans un autre langage et dépendant du système. • jar.exe : Permet de compresser les classes Java ainsi que tous les fichiers nécessaires à l'exécution d'un programme (graphiques, sons, etc.). Il permet en particulier d'optimiser le chargement des applets sur Internet. • jarsigner.exe : Un utilitaire permettant de signer les fichiers archives produits par jar.exe.
  • 10. Java – Environnement 04/10/2015 10 • JRE: Java Runtime Environment (Environnement d’exécution java). Considéré comme une plateforme informatique au même titre qu'un système d'exploitation qui permet aux programmes java de s’exécuter sur différents environnements. • Machine virtuelle (JVM): Machine informatique fictive. Elle exécute des programmes compilés sous forme de bytecode Java. • Java API Classes: contient les bibliothèques standards de java JRE Java API Classes Java Virtual Machine
  • 11. Java – Environnement d’exécution 04/10/2015 11 JVM JVM JVM MAC Linux Windows ByteCode Test.class Javac Test.java Test.java Portabilité
  • 12. Java – Premier programme (sans IDE) 04/10/2015 12 • Ecrire mon premier programme: • Compiler mon premier programme: • Exécuter mon premier programme: Création de Test.java Avec Bloc-notes (Code source) Compilation de Test.java Avec javac Test.java Crée Test.class (ByteCode) Exécution de Test.class Avec java Test Exécute le programme
  • 13. Java – Premier programme (sans IDE) 04/10/2015 13 Définir la variable d’environnement path qui indique le chemin d'accès aux programmes exécutables : Cette variable path devrait contenir le chemin du JDK utilisé: C:Program FilesJavajdk1.7.0_21bin Quand elle exécute une application java, la JVM consulte la variable d’environnement classpath qui contient le chemin d’accès aux classes java utilisées par cette application. Accès aux exécutables de JDK
  • 14. Java – Premier programme (sans IDE) 04/10/2015 14 • Le nom du fichier java doit être le même que celui de la classe qui contient la fonction principale main. • Pour compiler le programme source, il faut faire appel au programme javac.exe qui se trouve dans le dossier C:Program FilesJavajdk1.7.0_21bin • Pour rendre accessible ce programme depuis n ’importe quel répertoire, il faut ajouter la commande : path C:Program FilesJavajdk1.7.0_21bin javac Test.java • Après compilation du programme Test.java, il y a génération du fichier Test.class qui représente le ByteCode du programme • Pour exécuter ce programme en byte code, il faut faire appel au programme java.exe qui représente l’interpréter du bytecode. java Test Remarques
  • 15. Java – Les IDE 04/10/2015 15 Pour la création des programmes en Java, il est préférable de: Utiliser un éditeur conçu pour la programmation java • Ultraedit, JCreator, …. • Eclipse, environnement de développement java le plus préféré pour les développeurs java. Il est gratuit et ouvert. • Autres IDE java : • JDevlopper de Oracle • JBuilder de Borland. • NetBeans Outils de développement
  • 16. Java – Les données primitives 04/10/2015 16 Java dispose des primitives suivantes : Type Signification Taille (en octets) Plage de valeurs acceptées char Caractère Unicode 2 0 à 65535 byte Entier très court 1 -128 à 127 short Entier court 2 -32 768 à 32 767 int Entier 4 -2 147 483 648 à + 2 147 483 647 long Entier long 8 -9,223×1018 à 9,223×1018 float Nombre réel simple 4 1.4×10-45 à 3.4×1038 double Nombre réel double 8 4,9×10-324 à 1,8×10308 boolean Valeur logique (booléen) 1 true (vrai), ou false (faux)
  • 17. Java – Les données primitives 04/10/2015 17 Les primitives sont utilisées de façon très simple. Elles doivent être déclarées avec une syntaxe similaire au langage C, par exemple : int i; char c; boolean fini; Les primitives peuvent être initialisées en même temps que la déclaration. int i = 12; char c = 'a'; boolean fini = true; Utilisation des primitives
  • 18. Java – Les données primitives 04/10/2015 18 • Comment choisir le nom d’une variable: Pour respecter la typologie de java, les nom des variables commencent toujours par un caractère en minuscule et pour indiquer un séparateur de mots,on utilise les majuscules. Exemples: int nbPersonnes; boolean estFini; • Valeurs par défaut des primitives: Toutes les primitives de type numérique utilisées comme membres d'un objet sont initialisées à la valeur 0. Le type boolean est initialisé à la valeur false. • Définir une constante: final double pi=3.14159 // impossible de la changer par la suite Utilisation des primitives
  • 19. Java – Les données primitives 04/10/2015 19 Sur-casting : Le sur-casting peut se faire implicitement ou explicitement. Exemples : int a=6; // le type int est codé sur 32 bits long b; // le type long est codé sur 64 bits Casting implicite : b=a; Casting explicite b=(long)a; Sous-Casting : Le sous-casting ne peut se faire qu’explicitement. 1: float a = (float)5.5; 2 : double b = 8; 3 : byte c = (byte)b; 3. int d=4; 4: byte e=(byte)d; Casting des primitives double int double float double byte int byte
  • 20. Java – package 04/10/2015 20 • Un package est un ensemble de dossiers et de sous-dossiers. • C’est un mécanisme d’organiser les classes java de l’ensemble projet (un projet peut avoir plusieurs classes) • Il est utilisé pour organiser les classes par catégorie ou offrant la même nature de fonctionnalités • Il est possible de le compresser dans un dossier jar • Son mode d’emploi: • instruction écrite en début de la classe ayant la forme package pack1; // le fichier .class doit appartenir au dossier pack1 package com.gl.java; // le fichier .class doit appartenir au dossier comgljava • Le nom du package est soumis à une convention de nommage. • Si vous voulez utiliser un mot clé Java dans le nom de votre package, vous devez le faire suivre d'un underscore (« _ »). Package (cf Chapitre POO)
  • 21. Java – package 04/10/2015 21 • Il est possible d’utiliser les fonctionnalités offertes par une autre classe qui existe dans un autre package du même projet • Pour ce faire, on utilise l’instruction pour utiliser une classe précise (nom_classe) import chemin_package.nom_classe; • Ou bien, pour utiliser la plus part ou la totalité des classes d’un package import chemin_package • Exemple (la classe Scanner permet de lire les données au clavier) import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.print("Donner un nombre:"); Scanner clavier=new Scanner(System.in); int nb=clavier.nextInt(); System.out.println("le nombre lu au clavier est: " +nb); } } Utiliser les classes (cf Chapitre POO) d’un package Programme permettant de lire des entrées de type entier
  • 22. Java – Les tableaux de données primitives 04/10/2015 22 • En java, un tableau est une structure de données contenant un groupe d'éléments ayant le même type. • Lors de la définition d’un tableau, les [] précisent qu’il s’agit d’un tableau. • Les [] peuvent être placés avant ou après le nom du tableau. type_primitif T[] précise qu’il s’agit d’un tableau à une dimension type_primitif T[] [] précise qu’il s’agit d’un tableau à deux dimensions Les déclarations suivantes: int T[] ={1,5,7} et int [] T={1,5,7} sont les mêmes.
  • 23. Java – Les opérateurs 04/10/2015 23 Opérateur d ’affectation: •x=3; // x reçoit 3 •x=y=z=w+5; // z reçoit w+5, y reçoit z et x reçoit y Les opérateurs arithmétiques à deux opérandes: •+ : addition •- : soustraction •* : multiplication •/ : division •% : modulo (reste de la division euclidienne)
  • 24. Java – Les opérateurs 04/10/2015 24 Les opérateurs arithmétiques à deux opérandes (Les raccourcis) x = x + 4; ou x+=4; z = z * y; ou Z*=y; v = v % w; ou v%=w; Les opérateurs relationnels: •== : équivalent •< : plus petit que •> : plus grand que •<= : plus petit ou égal •>= : plus grand ou égal •!= : non équivalent Les opérateurs d’incrémentations et de décrémentation: ++ : Pour incrémenter (i++ ou ++i) -- : Pour décrémenter (i–- ou --i)
  • 25. Java – Les opérateurs 04/10/2015 25 Les opérateurs logiques && Et (deux opérandes) || Ou (deux opérandes ) ! Non (un seul opérande) L'opérateur à trois opérandes ?: Affectation condition ? expression_si_vrai : expression_si_faux exemple : x = (y < 5) ? 4 * y : 2 * y; Equivalent à : if (y < 5) x = 4 * y; else x = 2 * y;
  • 26. Java – Les structures de contrôle 04/10/2015 26 If (condition) Bloc d’instructions 1; Else Bloc d’instruction 2; NB :La partie de Else peut être absente Les structures de choix simple Ecrire un programme qui lit au clavier la variable moyenne et qui permet d’afficher à l’écran « Validé (é) » si la moyenne est supérieure ou égale à 12 et « non validé (e) » si non. Exemple
  • 27. Java – Les structures de contrôle 04/10/2015 27 Java permet d'écrire ce type de structure sous la forme : if (Condition 1) { bloc1; } else if (Condition 2) { bloc2; } else if (Condition 3) { bloc3; } else { bloc4; } Les structures de choix imbriquées Compléter le programme précédent de manière à afficher le résultat accompagné de la mention Exemple
  • 28. Java – Les structures de contrôle 04/10/2015 28 Syntaxe : switch( variable) { case valeur1: instr1;break; case valeur2: instr2;break; case valeurN: instrN;break; default: instr;break; } Les structures de cas Ecrire un programme permettant d’afficher le jour correspondant à un nombre lu au clavier. Si le nombre entré ne se trouve pas dans l’intervalle [1-7] afficher un message d’erreur. 1 Lundi … 7 Dimanche Exemple
  • 29. Java – Les structures de contrôle 04/10/2015 29 • Une boucle est une structure de contrôle destinée à exécuter une portion de code plusieurs fois. • La structure de contrôle branchant le pointeur ordinal au début de cette portion tant qu'une condition de continuation est remplie ou, selon les boucles, qu'une condition de sortie n'est pas remplie. • Normalement, une boucle s'exécute selon le cas, soit un nombre de fois connu à l'avance, soit jusqu'à ce qu'une condition permette de sortir de la boucle. • Il arrive toutefois qu'une erreur de programmation fasse que la condition ne devienne jamais vraie. Le programme s'exécute alors indéfiniment à l'intérieur de cette boucle infinie. Les structures de contrôle répétitives (Boucles)
  • 30. Java – Les structures de contrôle 04/10/2015 30 for (initialisation;test;incrémentation) { instructions; } Exemple : for (int i = 2; i < 10;i++) { System.out.println("I="+i); } Boucle for
  • 31. Java – Les structures de contrôle 04/10/2015 31 Sortie d'une boucle par return int[] tab=new int[]{4,6,5,8}; for (int i = 0; i < tab.length; i++) { if (tab[i] == 5) { return i; } Branchement au moyen des instructions break et continue break: int x = 10; for (int i = 0; i < 10; i++) { x--; if (x == 5) break; } System.out.println(x); continue: for (int i = 0; i < 10; i++) { if (i == 5) continue; System.out.println(i); }
  • 32. Java – Les structures de contrôle 04/10/2015 32 L a boucle While while (condition){ BlocInstructions; } L a boucle do .. while do{ BlocInstructions; } while (condition); Exemple : int s=0;int i=0; do{ s+=i; i++; }while (i<10); System.out.println("Somme="+s); Exemple : int s=0;int i=0; while (i<10){ s+=i; i++; } System.out.println("Somme="+s);
  • 33. Java – Les fonctions 04/10/2015 33 Une fonction en Java: • fait une tâche • a un nom • reçoit des paramètres en cas de besoin • Retourne un résultat si nécessaire Exemple public static float appliquer_tva(float somme){ return somme+somme*20/100; } Float: le type de retour de la fonction Appliquer_tva: le nom de la fonction Float somme: le seul paramêtre de la fonction NB: clés public et static (cf chapitre de la POO)
  • 34. Java – Les fonctions 04/10/2015 34 La surcharge des fonctions: • La surcharge d’une fonction consiste à garder le même nom • Il s’agit d’un changement dans la signature de la fonction (type et nombre de paramètres) Exemple static void parcourirTableau(String[] tab) { for(String str : tab) System.out.println(str); } static void parcourirTableau(int[] tab) { for(int str : tab) System.out.println(str); } static void parcourirTableau(int[] tab,int i) { for(int d : tab) System.out.println(d*i); }
  • 35. Java – Les fonctions 04/10/2015 35 La récursivité désigne le concept dans lequel une fonction appelle dans son elle- même. Exemple public static void r(int n){ System.out.println(n*n); if (n>0) r(n-1); System.out.println(n); } Public static void main(String arg[]){ r(5); } La récursivité 0 1 2 3 4 5 Le résultat de ce programme est:
  • 36. Java – Les fonctions 04/10/2015 36 Ecrit une fonction qui reçoit en paramètre un entier n, et retourne la somme des n premier nombres. Solution1: en utilisant une fonction classique Solution 2: en utilisant une fonction récursive Exercice 1
  • 37. Java – Les fonctions 04/10/2015 37 Exercice 2 public class Test { public static void main (String[] args) { int var1 = 1, var2 = 5; System.out.println("Avant l'appel de la méthode : "+var1+" "+var2); modifier (var1, var2); System.out.println("Après l'appel de la méthode : "+var1+" "+var2); } public static void modifier (int var1, int var2) { var1 += 4; var2 += 7; } } Donner le résultat du programme suivant: Avant l'appel de la méthode : 1 5 Après l'appel de la méthode : 1 5Résultat:
  • 38. Java 04/10/2015 38 Fin de la première partie •Questions et réponses •Truc et astuces •TD à Corriger •Exercices à rendre