在Java中,傳遞參數時有兩種方式,即引用調用和傳值調用。那么到底什么是引用調用和傳值調用呢?下面來詳細介紹。
1. 引用調用
public class Main { public static void main(String[] args) { Person tom = new Person("Tom"); changeName(tom); System.out.println(tom.getName()); // 輸出"Jerry" } public static void changeName(Person person) { person.setName("Jerry"); } } class Person { private String name; public Person(String name) { this.name = name; } public void setName(String name) { this.name = name; } public String getName() { return name; } }
上述代碼中,我們將一個Person對象傳遞給了changeName()方法。在方法內部,我們通過person引用來修改Person對象的name屬性。這個name屬性的地址是在原對象中的,所以我們稱之為引用調用。最后,我們輸出person.getName()的值是"Jerry",因為引用調用在方法執行后能夠改變傳入參數的值。
2. 傳值調用
public class Main { public static void main(String[] args) { int num = 3; changeNum(num); System.out.println(num); // 輸出3 } public static void changeNum(int num) { num = 5; } }
在上述代碼中,我們將一個int型變量num傳遞給了changeNum()方法。在方法內部,我們修改了num的值為5。由于Java中的基本數據類型是傳值調用,所以我們輸出的num的值還是3,不能夠改變原有的值。
綜上所述,引用調用和傳值調用都是Java中常見的傳遞參數方式。需要根據具體情況選擇何種方式。
下一篇mvc模板php