Académique Documents
Professionnel Documents
Culture Documents
JAVA
Présenté par Abdoul Aziz Ciss
Docteur en Cryptologie, Consultant ITSec
LACGAA/FST/UCAD
Email: alekciss@gmail.com
Web : www.alekciss.com
Tel: 77 451 92 95
Plan
1. Introduction au langage Java
2. Techniques de base du langage
3. Les types primitifs
4. Les structures de contrôle
5. Programmation Orientée Objet
6. Les tableaux
7. Les chaines de caractères
8. L’héritage
9. La gestion des exceptions
10. Les Threads
11. Interfaces graphiques avec l’API Swing
12. Les Entrées/Sorties
13. Java Database Connectivity
14. Collections et Algorithmes
15. Applets
Introduction au langage Java
Introduction
Java est un langage de programmation à usage général, évolué et
orienté objet, créé par James Gosling et Patrick Naughton employés
de Sun Microsystems. Sa syntaxe est proche du C. Ses caractéristiques
ainsi que la richesse de son écosystème et de sa communauté lui ont
permis d’être très largement utilisé pour le développement
d’applications de grande envergure.
Simplicité:
Pas de pointeurs, pas d’héritage multiple
Gestion de la mémoire:
L’allocation de la mémoire pour un objet est automatique à sa création et Java
récupère automatiquement la mémoire inutilisée grâce au garbage collector qui
restitue les zones mémoires laissées libres suite à la destruction d’un objet.
Caractéristiques de Java
Sécurité:
La sécurité fait partie intégrante du système d’exécution du compilateur.
Un programme Java planté ne menace pas l’OS. Il ne peut pas y avoir
d’accès directe à la mémoire. L’accès au disque dur par une Applet est
règlementé.
LesThreads:
Java permet l’utilisation des threads qui sont des unités d’exécution isolées.
La JVM, elle-même, utilise plusieurs threads.
Application et Applet
Il existe deux types de programmes avec les versions standards de
Java: les applications et les applets. Une application autonome (stand
alone program) est un programme qui s’exécute sous le contrôle de
l’OS. Une applet est une application qui est chargée par un navigateur
et qui est exécuté sous le contrôle d’un plugin de ce dernier.
Depuis sa version 1.2, Java a été renommé Java 2. Les numéros de version 1.2 et 2
désignent donc la même version. Le JDK a été renommé J2SK (Java 2 Software
Developement Kit) mais la dénomination JDK reste encore largement utilisée.
Les différentes éditions et versions de Java
Sun définit trois plateformes d'exécution (ou éditions) pour Java pour des
cibles distinctes selon les besoins des applications à développer :
Java Micro Edition (J2ME / Java ME): environnement d’exécution et API pour
le développent d’applications sur appareils mobiles et embarqués dont les
capacités ne permettent pas la mise en œuvre de Java SE.
Installation du JDK
Le JDK et la documentation sont librement téléchargeables sur le site web
d’Oracle : http://www.oracle.com
Ces fichiers sources possèdent l’extension .java. Ils peuvent contenir une
ou plusieurs classes ou interfaces mais il ne peut y avoir qu’une seule classe
ou interface déclarée publique par fichier. Le nom de ce fichier source doit
obligatoirement correspondre à la casse près au nom de cette entité
publique suivi de l’extension .java.
Exécution ( du byte-code)
java MaClasse
class MonAutreClasse {
public static void afficher(String message) {
System.out.println(message);
}
}
Exemple:
jar -cvf MaClasse.jar MaClasse.class
Le fichier .jar peut alors être diffusé et exécuté s’il contient au moins une
classe avec une méthode main().
java –cp MaClasse.jar MaClasse
Règles de base
Java est sensible à la casse.
Les blocs de code sont encadrés par des accolades. Chaque instruction se
termine par un caractère ';' (point virgule).
Une instruction peut tenir sur plusieurs lignes
Exemples de commentaires:
//Commentaire sur une seule ligne
int cpt = 1 ; // Déclaration du compteur
Ce sont les seuls types du langage qui ne sont pas des classes.
Les types primitifs(au nombre de 8) se répartissent en quatre grandes
catégories selon la nature des informations qu’ils permettent de
manipuler:
Les entiers
Les flottants
Les caractères
Les booléens
Les type entiers
Ils servent à représenter les nombres entiers relatifs, ils sont au
nombre de 4:
byte (8 bits) : [-128; 127]
short (16 bits) : [−2^16 ; 2^16 - 1]
int (32 bits) : [−2^32 ; 2^32 - 1]
long (64 bits): [−2^64 ; 2^64 - 1]
Les types élémentaires ont une taille identique quelque soit la plateforme
d’exécution
Les types flottants
Ils permettent de représenter, de manière approchée, une partie des
nombres réels. Il existe deux types de flottants en Java:
float (32 bits)
double (64 bits)
Exemple :
float pi = 3.141f; //suffixe f obligatoire
double valeur = 3d; // suffixe d non obligatoire
float flottant1 = 2e10f, flottant2 = 1.6f ;
Les caractères
Un caractère est codé sur 16 bits car il est conforme à la norme
Unicode. Il doit être entouré par des apostrophes. Une valeur de type
char peut être considérée comme un entier non négatif de 0--65535.
Remarque:
Une variable manipulée dans une méthode (variable locale) ou un
bloc devra toujours être initialisée avant toute utilisation.
La déclaration d’une variable réserve de la mémoire pour stocker sa
valeur.
Initialisation des variables
En Java, toute variable appartenant à un objet (définie comme étant un
attribut de l’objet) est initialisée avec une valeur par défaut en accord avec
son type au moment de sa création.
package dev.ciss.test;
add = a + b ;
sous = a – b ;
prod = a * b ;
quot = a / b ;
System.out.println("a + b = "+add);
System.out.println("a - b = "+sous);
System.out.println("a * b = "+prod);
System.out.println("a / b = "+quot);
}
}
Conversions implicites
Les opérateurs arithmétiques ne sont définies que lorsque les deux opérandes sont
de même type. Mais on peut écrire des expressions mixtes dans lesquelles
interviennent des opérandes de types différents.
Exemple:
Elle ne peut se faire que suivant une hiérarchie qui permet de ne pas
dénaturer la valeur initiale:
int long float double
Remarque:
Une conversion de double en float n’est pas légale.
Pour l’exemple précédent, on ne peut pas faire:
if (condition){
expression1 ;
}
else{
expression2;
}
double note ;
…
if (note >= 16)
System.out.println("Mention Très bien") ;
else if ((note > 12) && (note < 14) )
System.out.println("Mention Bien") ;
else
System.out.println("Mention Passable") ;
Choix: switch
Syntaxe:
switch (expression) {
case constante1: instruction1 ; break ;
case constante2: instruction2 ; break ;
…
case constanteN : instructionN ; break ;
default : instcution ;
}
char option;
int x , n ;
…
switch (option){
case 'C' : x = carre (n) ; break ;
case 'F' : x = factorielle(n); break ;
default :
System.out.println("Fonction non définie !");
}
L’instruction while
Syntaxe:
while (expression ) {
instruction ;
}
int i = 1, Max = 14 ;
int i = 1, Max = 14 ;
do {
System.out.println("i = "+i);
i++ ;
} while ( i <= Max) ;
//valeurs de i de 1 à 14
L’instruction for
Syntaxe:
for(expression1 ; expression2 ; expression3)
{
instructions
}
int Max = 14 ;
for (int i = 0 ; i < Max ; i++) {
System.out.println("i = "+i);
}
/* valeurs de i de 0 à 13 */
L’instruction break
L’instruction break s’emploie principalement au sein d’une boucle. Elle set à
interrompre le déroulement de la boucle, en passant à l’instruction suivant la
boucle.
Exemple:
public class Break {
public static void main (String args []){
for (int i = 0; i < 10; i++){
if (i==4)
break ;
System.out.println("i = "+i) ;
}
}
}
Résultat: i = 0, i = 1, i = 2, i = 3
L’instruction continue
L’instruction continue permet de passer prématurément au tour de boucle suivant.
Exemple:
public class Continue {
public static void main (String args []){
for (int i = 0; i < 10; i++){
if ((i==4) || (i==7) )
continue ;
System.out.println("i = "+i) ;
}
}
}
Résultat: i = 0, i = 1, i = 2, i = 3, i = 5, i = 6, i =
8, i = 9