Java参数的传递,本质上是实参副本的传递,实参副本(形参)的改变,不影响实参。比如下面的程序说明:
package com.use;
public class ParamChange {
public int a;
public int b;
public void swap(ParamChange paramChange){
int temp=paramChange.a;
paramChange.a=paramChange.b;
paramChange.b=temp;
paramChange=null;//即使这里赋值为null,使paramChange指向非有效地址,也不影响下面paramChange的输出。
}
}
import com.use.ParamChange;
public class ParamChangeTest {
public static void main(String[] args) {
ParamChange paramChange=new ParamChange();
paramChange.a=6;
paramChange.b=9;
paramChange.swap(paramChange);
System.out.println("a:"+paramChange.a+"----b:"+paramChange.b);//a:9----b:6
}
}