employee 是我創建的一個類來的,getXXX方法是employee裡的方法。
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee a = new Employee("a", 1000, 1990, 1, 1);
Employee b = new Employee("b", 2000, 2000, 12, 12);
System.out.println("a:" + a.getName());
System.out.println("b:" + b.getName());
swap(a, b);
System.out.println("a:" + a.getName());
System.out.println("b:" + b.getName());
}
public static void swap(Employee x, Employee y) {
Employee temp = x;
x = y;
y = temp;
System.out.println("x:" + x.getName());
System.out.println("y:" + y.getName());
}
大概知道,是因為方法調用的是對象的拷貝?
那拷貝為什麼沒返回給對象本身?
你是在方法調用中進行的交換,交換的是形參,而原始實際參數的指針依然是原來的引用。但是如果你操作對象的屬性,直接設置兩個對象的屬性值交換,那麼原來的對象的屬性也就跟著變了,因為引用的是同一個地址。