Je n'arrive pas à m'expliquer pourquoi ce petit programme fonctionne comme ça. Pourquoi la variable est-elle modifiée dans la méthode main s'il s'agit d'un tableau et si ce n'est pas un tableau -> pas modifié.
Pourquoi dans un cas c'est un passage par variable (ou objet) et dans un autre par valeur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class TestMethodesVariables {
 
	public static void maMethode(String[] a){
		a[0]="Ce n'est pas ma chaine";
	}
 
	public static void maMethode(String a){
		a="Ce n'est pas ma chaine";
	}
 
	public static void main(String[] args) {
		String[] at = {"C'est ma chaine"};
		String ax = "C'est ma chaine";
		maMethode(ax);
		maMethode(at);
		System.out.println(at[0]);
		System.out.println(ax);
	}
}
Le résultat est :
Ce n'est pas ma chaine
C'est ma chaine