可能的重复:
Java 是“按引用传递”吗?
嗨,我开发了以下代码。在交换方法中,我交换了两个对象的引用。然后它将在被调用的方法中更改(这里是 swap()),但在主方法中没有更改..为什么?
class Check
{
public void swap(PassByRefDemoMain obj1,PassByRefDemoMain obj2)
{
PassByRefDemoMain temp;
temp=obj1;
obj1=obj2;
obj2=temp;
System.out.println(obj1.id+ " "+ obj2.id);
}
}
public class PassByRefDemoMain {
int id;
PassByRefDemoMain(int id)
{
this.id=id;
}
public static void main(String[] args) {
PassByRefDemoMain obj1=new PassByRefDemoMain(10);
PassByRefDemoMain obj2=new PassByRefDemoMain(20);
Check obj=new Check();
obj.swap(obj1,obj2);
System.out.println(obj1.id + " " + obj2.id);
}
}