java类方法如何实现引用传递和值传递
java中参数怎么区分想要值传递还是引用传递比如方法swap(inta,intb)调用该方法swap(x,y)将不会修改x,y的值,那么怎么做可以让该方法参数变为引用传递...
java中参数怎么区分想要值传递还是引用传递
比如方法swap(int a,int b) 调用该方法swap(x,y)将不会修改x,y的值,那么怎么做可以让该方法参数变为引用传递,从而让swap(x,y)修改x,y的值呢 展开
比如方法swap(int a,int b) 调用该方法swap(x,y)将不会修改x,y的值,那么怎么做可以让该方法参数变为引用传递,从而让swap(x,y)修改x,y的值呢 展开
展开全部
参数是基本类型就是传值,传对象就是引用传递。
swap(Integer x, Integer y)可以传递引用,但是没办法实现交换。这跟Integer的实现方式有关。所以不是引用传递就一定能改变外面的值。
下面是引用传递,交换的情况,又臭又长。
class Untitled {
int needFix;
public static void swap(Untitled x, Untitled y) {
int temp = x.needFix;
x.needFix = y.needFix;
y.needFix = temp;
}
public static void main(String[] args) {
Untitled u1 = new Untitled();
Untitled u2 = new Untitled();
u1.needFix = 3;
u2.needFix = 4;
swap(u1, u2);
System.out.println(u1.needFix+","+u2.needFix);
}
}
另外,你可以考虑一下引用传递,不过也是一种传值,java里面没有事实上的指针。直接交换引用指向的对象是没有作用的。
Untitled temp = x;
x = y;
y = temp;
无效。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询