Partie 2 : Types de donn´ees en Java
´
El´ements de cours
Un type est un ensemble de valeurs poss´edant des caract´eristiques communes, g´en´eralement
d´efinies par la nature des op´erations que l’on peut leur appliquer [Livre aide-m´emoire de java
p. 6].
Dans vos programmes, vous aurez besoin de m´emoriser des donn´ees qui pourront ˆetre de
diff´erents types : des chaˆınes de caract`eres, des entiers, des r´eels, des structures de donn´ees. Vous
aurez ´egalement besoin d’organiser vos traitements en fonction du type de ces donn´ees. Par
exemple, on sait additionner deux entiers,affecter une note `a un ´el`eve. Par contre, additionner
deux ´el`eves n’a pas de sens.
Les langages dits fortement typ´es forcent `a expliciter le type des donn´ees manipul´ees. `
A
partir de cette information, des outils adapt´es en particulier les compilateurs v´erifient que
vous n’avez pas commis d’erreur de type (additionner des choux et des ch`evres) et que les
op´erations que vous utilisez pour manipuler ces donn´ees existent bien (un choux ne mange pas
des ch`evres). De plus cette information peut ´egalement ˆetre utilis´ee pour minimiser la place des
donn´ees occup´ee en m´emoire.
Les types en Java
Le langage Java reconnaˆıt plusieurs types de donn´ees permettant de diff´erencier les infor-
mations utilis´ees par un programme.
On distingue deux grandes familles de types de donn´ees en Java :
— les types ´el´ementaires ou primitifs,
— les types structur´es ou objet.
Les types de donn´ees ´el´ementaires regroupent les valeurs num´eriques enti`eres ou d´ecimales,
les caract`eres Unicode ainsi que les valeurs bool´eennes true et false.
Type Signification Taille (en octets) Plage de valeurs accept´ees
char Caract`ere 2 jeu de caract`eres Unicode
(1114112 caract`eres dans Unicode 4.1.0)
byte Entier tr`es court 1 -128 `a 127
short Entier court 2 -32768 `a 32767
int Entier 4 -2 147 483 648 `a 2 147 483 647
long Entier long 8 -9223372036854775808 `a 9223372036854775807
float flottant (r´eel) 4 -1.4*10-45 `a 3.4*1038
double flottant double 8 4.9*10-324 `a 1.7*10308
boolean bool´een 1 true ou false
2 Nombres
exercice 2) Indiquez les notations de constantes valides et le type des nombres suivants :
3
0.31 +273.3 0.005e+3 0x10
010 .389 15 0x5e-4
33.75 1.5+2 3,250 .E1
1234 3E5 08 10e-4
0X1a2 0037 1e2768 0x1A2
3 Types
exercice 3) Indiquez le type de chacune des constantes donn´ees ici
100 true ’a’ 2
0x10 .23 "nom" ’2’
"a" ’\u0041’ ’\n’ "2"
4 D´eclaration de variables
exercice 4) Indiquez les d´eclarations valides
int i = 0; short j; long l1, l2 = 0, l3;
short j = 60000; int i = 0x10; char c = ’a’;
char c = a; char c = 0x41; char c = ’\u0041’;
boolean b = true; boolean b = 0; real r = 0.1;
float f = 0.1; double d = 0.1; double d = 0;
float f = 0x10; double d = .1; int i = ’a’;
5 D´eclaration de constantes
exercice 5) Qu’est-ce qui ne va pas ?
final double pi;
pi = 3.1415926535897931;
final float e = 2.7182818284590451;
pi = e;
6 Expressions
int i, j, k;
double x, y, z;
char c;
boolean b;
exercice 6) ´
Etant donn´ees les d´eclarations de variables ci-dessus, indiquez le type de chacune
des expressions suivantes :
4