数据结构-为什么置换不了数据

来源:百度知道 编辑:UC知道 时间:2024/03/28 19:33:46
public class Sort {

public static void main(String[] args){

int i=4;
int j=3;
Sort2 st=new Sort2();
st.swap(i,j);
System.out.print(i);
}
}

class Sort2{
void swap(int one,int two){
int temp=one;
one=two;
two=temp;
}
}

怎么打印的i还是4啊

因为i和j不是对象,在内存中one和i,tow和j指的根本不是一个地址,在调用swap的时候,只是把i和j的值传了过去,也就是说在void swap(int one, int tow)这一行中one=4,two=3,等这个方法运行结束,这里的one=3,two=4,但是实际上对i和j所指的地址没有任何影响,所以还会打印出4。为了更明确的理解这个问题,建议你swap的参数设置成对象一试,因为对象是传地址的,所以swap后会得到你想要的结果!

我来说一下
是不是I和J都要定义成static呢?

不一定对哦,感觉而已