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

Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...
Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...
Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...Sarra LAOUINI
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102MRamo2s
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Georges Amichia
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
PFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatiquePFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatiquechammem
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
Modèle en v
 Modèle en v Modèle en v
Modèle en vbouye2209
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfwebreaker
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Presentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxPresentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxFehmi Arbi
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebHarrathi Mohamed
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFEDonia Hammami
 
Conception et réalisation d'une plateforme social learning
Conception et réalisation d'une plateforme social learningConception et réalisation d'une plateforme social learning
Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseLilia Sfaxi
 
Traitement des images avec matlab
Traitement des images avec matlabTraitement des images avec matlab
Traitement des images avec matlabomar bllaouhamou
 

Tendances (20)

Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...
Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...
Rapport de PFE du Diplôme de Mastère pro en Modélisation, Bases de Données et...
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
PFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatiquePFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatique
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Modèle en v
 Modèle en v Modèle en v
Modèle en v
 
Exposé langage-b
Exposé langage-bExposé langage-b
Exposé langage-b
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Presentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxPresentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicaux
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Conception et réalisation d'une plateforme social learning
Conception et réalisation d'une plateforme social learningConception et réalisation d'une plateforme social learning
Conception et réalisation d'une plateforme social learning
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
Traitement des images avec matlab
Traitement des images avec matlabTraitement des images avec matlab
Traitement des images avec matlab
 

En vedette

Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage CMohamed Lahby
 
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
 
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)

Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
 
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
 
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

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 

Dernier (14)

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 

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