您的位置:首页 > 编程语言 > Java开发

证明java只有值传递

2013-11-24 22:53 190 查看
   有很多java初学者(尤其是学习过其他语言的人)都会误以为java中有两种参数传递方式,其实java中只有一种传递方式——”值传递“。不论是对基本类型变量的引用还是对对象的引用实际上都是引用它们的拷贝。

对于基本数据类型可用以下代码证明:

public class ValueTest
{
public static void main(String[] args)
{
int a = 1;
int b = 2;
Swap s = new Swap();
s.swap(a,b);
System.out.printf("a = %d\nb = %d",a,b);
}
}
class Swap
{
void swap(int x,int y)
{
int temp = y;
y = x;
x = temp;
}
}
对于对象可用以下代码证明:

public class ValueTest {
public static void main(String[] args)
{
Test a = new Test(512);
Test b = new Test(123);
Swap s = new Swap();
s.a(a,b);
a.p();
b.p();
}
}

class Swap{
void a(Test x,Test y)
{
Test temp = x;
x = y;
y = temp;
}
}
class Test{
Test(int c)
{
n = c;
}
void p()
{
System.out.println(n);
}
private int n = 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: