public class Cours1 {
public static void main(String []arg) {
int i;
// System.out.println(i); // interdit car la variable n'est pas initialisée
i = 4; // i est utilisée comme l-value
System.out.println(i+7); // i est utilisée comme r-value
int []t; // Attention: t n'est pas un tableau! t est une référence vers un tableau unidimensionel d'entiers
// System.out.println(t); // interdit t non plus n'est pas initialisée
t = new int[4]; // l'opération new fournit l'adresse en mémoire d'un objet contenant 4 entiers (consécutifs en mémoire) et d'un entier contenant la longueur du tableau
System.out.println(t); // ici on n'affiche pas le tableau t (t n'est pas un tableau), on affiche le contenu de la variable référence t, c'est-à-dire l'adresse de l'objet référencé/pointé par t, donc l'adresse du tableau alloué par l'opération new
System.out.println(t[0]); // ici on affiche le premier entier du tableau de l'objet référencé/pointé par t. Attention, le tableau a été initialisé à sa création, la valeur 0 est utilisée pour initialisé les valeurs des tableaux d'entiers à leur création
t[0] = 11; // on modifie la valeur du premier entier du tableau de l'objet référencé par t
t[1] = 111; // on modifie la valeur du second entier du tableau de l'objet référencé par t
System.out.println(t[1]); // on affiche la valeur du second entier du tableau de l'objet référencé par t
System.out.println(t.length); // on affiche la longueur du tableau de l'objet référencé par t
t = new int[6]; // ici on modifie la valeur de t, c'est-à-dire que désormais t désigne/référence/pointe un autre objet contenant un autre tableau (chaque new créé un objet frais/neuf).
System.out.println(t);
System.out.println(t[1]);
System.out.println(t.length);
}
}