Public int[] index = new int[20];
Florian
-
Florian -
Florian -
Bonjour,
je débute en java et j'ai lu ceci dans un morceau de code:
public int[] index = new int[20];
Concrétément quel type d'objet va être crée ?
Merci
je débute en java et j'ai lu ceci dans un morceau de code:
public int[] index = new int[20];
Concrétément quel type d'objet va être crée ?
Merci
2 réponses
-
Les tableaux sont des objets issus de classes construites automatiquement par Java.
Si tu fait int[], Java construit automatiquement une classe tableau pour les int
Si tu fais String[], Java construit automatiquement une autre classe tableau pour les String
Plus compliqué, si tu fais double[][], Java construit automatiquement une classe tableau pour les double et une deuxième classe tableau pour les double[]
Voici un petit code de test pour voir le nom de ces classes automatiques :
public static void main(String[] args) { System.out.println(new int[] {}.getClass().getName()); System.out.println(new String[] {}.getClass().getName()); System.out.println(new double[][] {}.getClass().getName()); }
Le résultat est le suivant :
[I [Ljava.lang.String; [[D
Explications :
Quand on fait int[] on créé la classe [I (le I indique que c'est un int, et le [ indique que c'est un tableau)
De même pour String[], le vrai nom de String est java.lang.String, ce qui explique pourquoi on a un L (pour les objets) suivi du nom complet de String. Avec bien sûr le [ pour indiquer que c'est un tableau.
Enfin, pour double[][], on a D pour dire que c'est un double, puis on a [D qui correspond à double[] et [[D qui correspond à double[][]
Ne sois donc pas surpris si tu affiches un tableau d'avoir ce genre de résultat :System.out.println(args); // [Ljava.lang.String;@13579BDF
Explication : les classes tableau sont générées automatiquement, et la méthode toString() n'est pas redéfinie, donc on conserve le comportement par défaut hérité de la classe Object, c'est à dire : le nom de la classe [Ljava.lang.String, suivi d'un @ et d'un code hexadécimal correspondant au hashcode de l'objet tableau.
Pour afficher correctement un tableau, il faut utiliser des méthodes qui lisent un à un tous les éléments du tableau pour les afficher. Par exemple la méthode java.util.Arrays.toString permet de faire ce genre de manipulation.
System.out.println(java.util.Arrays.toString(new int[] {1, 2, 3})); // [1, 2, 3] -