Académique Documents
Professionnel Documents
Culture Documents
SCIENTIFIQUE
UNIVERSITÉ DE TUNIS EL MANAR
Programmation JAVA
o Introduction
o Les bases du langage Java
o Principes de la Programmation orientée objet
o Héritage et Polymorphisme
o Interfaces et package
o Exceptions
2
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE
SCIENTIFIQUE
UNIVERSITÉ DE TUNIS EL MANAR
4
Les types en Java
Types primitifs
5
Types primitifs
Valeur logique
boolean (true/false)
Nombres entiers Nouveauté par rapport à C :
byte (1 octet=8bits) boolean et byte
short (2 octets)
int (4 octets)
Les chaînes de caractères
long (8 octets)
en JAVA sont des objets :
Nombres non entiers (à virgule flottante)
classe String
float (4 octets)
double (8 octets)
Caractère (un seul)
char (2 octets)
6
Types primitifs
Chaque type primitif possède une classe (wrapper) qui encapsule un attribut du type
primitif : Byte, Double, Float, Integer, Long, Short
La classe Object est la classe parente de tous les objets en Java.
7
\u0000 is the null character in Unicode. It's different from null in Java,
Déclaration de variables
Une variable possède un nom, un type et une valeur.
La déclaration d'une variable doit donc contenir deux choses : un nom et le type de
données qu'elle peut contenir.
Le type d'une variable peut être:
soit un type primitif dit déclarée sous la forme type_primitif variable;
soit une classe déclarée sous la forme classe variable;
Exemple de déclaration:
boolean test;
String chaine;
int jour, mois, annee ;
8
Déclaration de variables
Déclaration, Initialisation et Assignation des variables
Exemple:
int t; 🡪 Déclaration d’un entier t
int u = 3; 🡪 Déclaration et initialisation d’un entier
int a = 1.2; 🡪 Erreur de compilation
t=7; 🡪 Initialisation de t à la valeur 7
u=t; 🡪 Assignation (affectation) de la valeur de t à u
m=9; 🡪 Erreur déclaration préalable nécessaire
char c; 🡪 Déclaration
c=‘a’; 🡪 Initialisation
9
Déclaration de variables
Les constantes:
Une variable déclarée final est une constante et elle ne peut être modifiée une fois qu’elle a
été initialisée.
public static final int N = 42;
10
Déclaration de variables
les chaînes de caractères
les chaînes de caractères sont des objets. Ce sont des instances de la classe String.
Déclaration de deux String :
String s1, s2;
Initialisation :
s1 = "Hello";
s2 = "le monde";
Déclaration et initialisation :
String s3 = "Hello";
Concaténation :
String s4 = s1 + " " + s2;
11
Conversion des types
Casting sur les primitives
Le cast est le fait de forcer le compilateur à considérer une variable comme étant d’un type
qui n’est pas le type déclaré ou le type réel de la variable.
12
Conversion des types
Upcasting: convertit un sous-type en un super-type (classe fille => classe mère), il se
fait d’une manière implicite.
Exemple 1: convertit int en double Exemple 2: convertit un String en Object
int a=10 ; String str1 = "Hello world";
double b = 20 ; Object obj = str1;
b= a ; // b vaut 10; String n’est pas un type primitif, c’est une classe.
Des conversions sont possibles aussi d’un type primitif en type objet et se font par des
méthodes.
Exemple:
int a ; toString ( ) est une méthode de la classe
double b = 2.0 ;
a = (int)b ; // cast
java.lang.Integer pour convertir un type
String int en texte (String).
s=a.toSting(); 14
Conversion des types
Sur le même principe, il sera possible en passant par des méthodes de convertir un
type objet en type primitif.
Exemple:
int x = 10;
Integer z=new Integer(20);
f1 = new Float (x); //f1=10,0
x=z.intValue(); //Integer ->
int
double b=f1.doubleValue();
// Float -> double
15
Conversion des types
Convertir une chaîne de caractères en type objet:
Chaque classe possède une méthode pour convertir une chaîne de caractères dans son
format.
nous utiliserons des méthodes statiques parseType, où Type sera remplacé par Int, Byte,
Double, Float, Long, Short.
Exemple:
String s="20";
Integer i=new Integer("10");
i=Integer.parseInt(s); // String -> Integer
System.out.println ("Valeur de i="+i);
//i vaut 20
16
Opérateurs
opérateur d’affectation
= affectation Opérateurs logiques
–= soustraction et affectation && et a && b
+= addition et affectation || ou a || b
! non !a
Opérateurs arithmétiques à deux opérandes
– soustraction opérateurs d’arithmétique binaire
* multiplication & et a & b
/ division | ou a | b
% modulo (reste de la division) ^ ou exclusif a ^ b
~ non ~a
Opérateurs à un opérande << décalage de bits à gauche a << 2
– opposé –x >> décalage de bits à droite b >> 2
++ pré-incrémentation ++x
++ post-incrémentation x++ opérateur à trois opérandes
-- pré-décrémentation --x ? : condition ? vrai : faux y < 5 ? 4 * y : 2 * y
-- post-décrémentation x-- (si…alors…sinon…)
Opérateurs relationnels
== équivalent x == 0
< plus petit que x < 2
> plus grand que x > 2
<= plus petit ou égal x <= 3
>= plus grand ou égal x >= 3 17
!= non équivalent a != b
Tableaux
Une variable est déclarée comme un tableau dès lors que des crochets sont présents soit
après son type, soit après son identificateur.
int [] myArray ; // ou bien
int myArray [];
Un tableau a toujours une taille fixe qui doit être précisée avant l’affectation de valeurs :
Par exemple : int myArray [] = new int[20]; // indices de 0 à 19 (n-1)
La taille d’un tableau est connue par l’attribut length: nom_tableau.length.
On peut également créer des matrices ou des tableaux à deux dimensions en multipliant les
crochets. Par exemple : int[][] ma_matrice;
18
Structures de contrôle
• Instructions conditionnelles : exécuter une série d'instructions dans le cas où une condition est
vraie, et d'exécuter une autre série d'instructions dans le cas contraire (même syntaxe qu'en C/C++).
Syntaxe: Exemple:
if <condition> <bloc si vrai> if (x<10)
[else if <condition> <bloc si vrai>] {x=x+1;}
[else <bloc si faux>] else { x=x-1;}
Exemple:
switch (num) {
Syntaxe: case 1 : System.out.println("Case1:
switch (<variable>) { Value is: "+num);
[case <val> : <bloc>]* case 2 : System.out.println("Case2:
default : <bloc> } Value is: "+num);
default : System.out.println(“default:
Value is: "+num); 19
}
Structures de contrôle
• Instructions itératives : Le traitement itératif est utilisé pour exécuter une ou plusieurs instructions
plusieurs fois (même syntaxe qu'en C/C++).
Exemple:
Syntaxe: for (int i = 0 ; i <
for (<init> ; <condition> ;
myArray,length; i++)
<instr_post_itération>) <bloc>
{ myArray[i]=getsomevalue();}
Exemple:
Syntaxe: while (i < biblio.nbLivres())
while <condition> <bloc>
{ Livre l =biblio.getLivre(i) ;
l.setDisponible(true) ;
i++; }
Syntaxe: Exemple:
do <bloc> while do a++
(<condition>); while (a != b); 20
Structures de contrôle
Instruction break et continue
break est utilisée pour sortir immédiatement d’un bloc d’instructions.
Dans le cas d’une boucle on peut également utiliser l’instruction continue avec la différence suivante :
break : l’exécution se poursuit après la boucle.
continue : l’exécution du bloc est arrêtée mais pas celle de la boucle. Une nouvelle itération du bloc commence
si la condition d’arrêt est toujours vraie.
Exemple:
for (int i = 0, j = 0 ; i < 100 ; i++) {
if (i > tab.length) {
break ;
}
if (tab[i] == null)
{ continue ;}
tab2[j] = tab[i];
j++;
} 21
Références
22