1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| public static void main(String[] args) {
char c1='a'; // c1 contient la valeur 'a'
char c2='b'; // c2 contient la valeur 'b'
char tab[] = new char[] { c1, c2 }; // tab est un tableau, dont la première cellule (case, indice, appelles-là comme tu préfères) tab[0] contient la valeur contenue par c1 et la seconde cellule tab[1] celle contenue par c2
System.out.println("c1="+c1); // affiche 'a'
System.out.println("c2="+c2); // affiche 'b'
System.out.println("tab="+Arrays.toString(tab)); // affiche [a, b]
// quand on appelle la méthode, on obtient
// char copyc1 = c1
// char copyc2 = c2
// char[] tabcopy = tab
methode(c1, c2, tab);
System.out.println("c1="+c1); // affiche 'a'
System.out.println("c2="+c2); // affiche 'b'
System.out.println("tab="+Arrays.toString(tab)); // affiche [a, d]
}
public static void methode(char copyc1, char copyc2, char[] tabcopy) {
System.out.println("copyc1="+copyc1); // affiche 'a'
System.out.println("copyc2="+copyc2); // affiche 'b'
System.out.println("tabcopy="+Arrays.toString(tabcopy)); // affiche [a, b]
copyc1='c'; // maintenant on dit que copyc1 contient la valeur 'c' : on a pas touché à c1 là, donc c1 continu de contenir 'a'
tabcopy[1]='d'; // maintenant on dit que tabcopy[1], la deuxième case du tableau référencé par tabcopy, contient 'd'.
// mais le tableau référencé par tabcopy est le même que celui référencé par tab, donc il forcément modifié
System.out.println("copyc1="+copyc1); // affiche 'a'
System.out.println("copyc2="+copyc2); // affiche 'c'
System.out.println("tabcopy="+Arrays.toString(tabcopy)); // affiche [a, d]
} |
Partager