Les éléments d'un tableau étant nécessairement des valeurs, il n'y a pas de tableaux d'objets, mais seulement des tableaux de références à des objets.
Par exemple,
Point[] tp = new Point[3];
définit tp comme une référence à un tableau de longueur 3, dont les éléments sont des références à des instances de Point ; la valeur initiale de ces éléments est null, et aucune instance de Point n'est créée (figure 1.18). Il faut invoquer explicitement un constructeur pour chacun de ses éléments (figure 1.19) :
for (int i=0; i<tp.length; i++) tp[i] = new Point();
On peut aussi initialiser explicitement les éléments d'un tableau de la façon suivante (dans ce cas, on ne doit pas spécifier la longueur dans l'expression de construction new Point[]):
Point[] tp = new Point[] { new Point(), new Point(1, 2), new Point(2, 1) };
Signalons que la méthode clone(), redéfinie pour les tableaux,
réalise une copie superficielle d'un tableau (le tableau est copié, mais
pas les objets auxquels référent ses éléments, figure 1.20) :
Point[] tp1 = (Point[]) tp.clone();