Si les tableaux sont des objets, les variables qui permettent de les manipuler sont
des références. Comme toute référence, les références sur les tableaux doivent être
déclarées, en tant que champ, que variable locale ou que paramètre. Pour déclarer
un tableau, il faut décider du type de ses éléments.
int[] t1; // déclare une référence t1 sur tableau d'élements entiers (int)
ICompteur[] t2; // déclare une référence t2 sur tableau de ICompteur
Comme tout objet, un tableau doit être construit, on dit aussi
alloué, attention
il ne s'agit pas là de construire ses éléments, mais bel et bien le tableau lui-même.
Pour cela il faut décider d'une longueur. Attention, cette longueur ne peut plus être
modifiée par la suite.
t1 = new int[10]; // alloue un tableau d'entiers de longueur 10
t2 = new ICompteur[6]; // alloue un tableau de ICompteur de longueur 6
On notera en particulier la syntaxe avec crochés [], qui distingue la construction
d'un tableau de 6 ICompteur et l'instanciation d'un objet
ICompteur avec une valeur initiale de 6. De plus,
ICompteur étant une interface, il serait impossible de
construire directement une instance.
Comme toute référence, l'opérateur d'affectation (=) permet
d'affecter la valeur d'une référence avec une valeur de type compatible.
// déclare une nouvelle référence t3 et l'affecte à la valeur de t2
ICompteur[] t3 = t2;
// t3 et t2 référence le même tableau !
On peut connaître à tout moment la longueur d'un tableau avec le champ
length. Ici, t1.length
vaut 10, t2.length vaut 6 et
t3.length vaut également 6.