next up previous contents index
Next: Tableaux pluridimensionnels Up: Objets Previous: Clonage d'objets

Tableaux d'objets

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.


 \begin{figurette}% latex2html id marker 2476
\begin{center}
\leavevmode
\fbox{...
...; aucune instance
de \texttt{Point} n'est créée.}
\end{center} \end{figurette}

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();


 \begin{figurette}% latex2html id marker 2486
\begin{center}
\leavevmode
\fbox{...
...ps}
} \caption{Tableaux : création des éléments.}
\end{center} \end{figurette}

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)
               };


 \begin{figurette}% latex2html id marker 2494
\begin{center}
\leavevmode
\fbox{...
...tableau de références : les objets sont partagés.}
\end{center} \end{figurette}
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();



 

R. Lalement
2000-10-23