Public int[] index = new int[20];

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



A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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]
0
Florian
 
Ca a le mérite d'être clair, merci beaucoup !
0