Bonsoir,

S'il vous plaît question de débutant en java
je me demande pourquoi je ne peux pas affecter null ou une nouvelle instance à un objet malgré il est passé par adresse à ma méthode

Example:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
	public static void killPerson(Person p)
	{
		p = null;
	}
 
	public static void main(String... args)
	{
		Person p = new Person("Me");
		System.out.println(p.getName());
		killPerson(p);
 
		System.out.println(p.getName());
	}
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
20
 
public class Person 
{
	String name;
 
	public Person(String name)
	{
		this.name = name;
	}
 
	public String getName()
	{
		return name;
	}
 
	void setName(String name)
	{
		this.name = name;
	}
}
Je trouve toujours que la méthode killPerson(p) ne peut pas affecter null à un objet ou même ne peut affecter un autre objet person à p (l'objet Person reste inchangé malgré son passage par la méthode) malgré on sait que le passage d'un objet (non pas type primitif) est toujours par adresse

Merci beaucoup