我只是想澄清一些事情。爲什麼person1和person2仍然指向同一個對象?在Java中重新分配對象引用
class Person{
private String name;
Person(String newName) {
name = newName;
}
public String getName() {
return name;
}
public void setName(String val) {
name = val;
}
}
class Test {
public static void swap(Person p1, Person p2) {
Person temp = p1;
p1 = p2;
p2 = temp;
}
public static void main(String args[]) {
Person person1 = new Person("John");
Person person2 = new Person("Paul");
System.out.println(person1.getName()+ ":" + person2.getName());
swap(person1, person2);
System.out.println(person1.getName()+ ":" + person2.getName());
}
}
輸出將是:
John:Paul
John:Paul
我想知道爲什麼約翰和保羅並沒有掉?
對象引用是按值傳遞的。當你交換'p1'和'p2'的值時,'person1'和'person2'不會改變。 – Radiodef