程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-JAVA 交換兩個對象,這麼寫為什麼沒交換成功?

java-JAVA 交換兩個對象,這麼寫為什麼沒交換成功?

編輯:編程解疑
JAVA 交換兩個對象,這麼寫為什麼沒交換成功?

JAVA 創建了一個方法,交換2個對象。這麼寫為什麼沒成功交換?

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());
    }

圖片說明
大概知道,是因為方法調用的是對象的拷貝?
那拷貝為什麼沒返回給對象本身?

最佳回答:


你是在方法調用中進行的交換,交換的是形參,而原始實際參數的指針依然是原來的引用。但是如果你操作對象的屬性,直接設置兩個對象的屬性值交換,那麼原來的對象的屬性也就跟著變了,因為引用的是同一個地址。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved