我们通过两个例子来了解java方法的参数传递机制
TestPrimitiveTransfer.java
源代码如下
[code lang="java"]
public class TestPrimitiveTransfer
{
public static void swap(int a,int b)
{
//下面三行代码实现a,b变量的值交换
//定义一个临时变量来保存a变量的值
int tmp=a;
a=b;
//把临时变量tmp的值赋给a
b=tmp;
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);
}
}
[/code]
效果如下
java方法的参数传递
同时TestReferenceTransfer.java
源代码如下
[code lang="java"]
public class TestReferenceTransfer
{
public static void swap(DataWrap dw)
{
//下面三行代码实现dw的a,b属性值交换
//定义一个临时变量来保存dw对象的a属性的值
int tmp=dw.a;
dw.a=dw.b;
dw.b=tmp;
System.out.println("swap方法里,a属性的值是"+dw.a+";b的值是"+dw.b);
}
public static void main(String[] args)
{
//DataWrap类在DataWrap.java里面
DataWrap dw=new DataWrap();
dw.a=6;
dw.b=9;
swap(dw);
System.out.println("交换结束后,a属性的值是"+dw.a+";b属性的值是"+dw.b);
}
}
[/code]
其中的DataWrap类在DataWrap.java里面,源代码如下
[code lang="java"]
public class DataWrap
{
public int a;
public int b;
}
[/code]
运行效果图如下
java方法的参数传递机制

分类: Java

发表评论

电子邮件地址不会被公开。 必填项已用*标注