//方法的参数传递机制(1);基本类型做形参的传递。
class PrimitiveTransferTest
{
public static void swap(int a,int b)
{
//下面代码实现a和b交换
int temp = a;
a = b;
b = temp;
System.out.println("swap方法里,a的值是:"+a+",b的值是:"+b);
}
public static void main(String[] args)
{
int a = 6;
int b = 9;
swap(a,b);
System.out.println("交换结束后,变量a的值是:"+a+",变量b的值是:"+b);
}
} //方法的参数传递机制(2);引用类型做形参的传递。
class DataWrap
{
int a;
int b;
}
class ReferenceTransferTest
{
public static void swap(DataWrap dw)
{
//下面代码实现a和b的交换。
dw.a = dw.a^dw.b;
dw.b = dw.a^dw.b;
dw.a = dw.a^dw.b;
System.out.println("swap方法里,a成员变量的值是:"+dw.a+",b成员变量的值是:"+dw.b);
System.out.println(dw);//DataWrap@2a139a55
//dw = null;//这里是为了证明若把这个dw的应用指向空,则不会影响main方法里的dw的指向。
}
public static void main(String[] args)
{
DataWrap dw = new DataWrap();
dw.a = 6;
dw.b = 9;
swap(dw);
System.out.println("交换结束后,a成员变量的值是:"+dw.a+",b成员变量的值是:"+dw.b);
System.out.println(dw);//DataWrap@2a139a55 //证明了引用传递传递的是地址(也就是指针)其实也是值(址)传递
}
}
从以上两个例子可看出,Java中的方法的参数传递只有一种形式,就是值传递。