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的值呢
展开
 我来答
dagewxw
2019-05-01 · TA获得超过5929个赞
知道大有可为答主
回答量:3523
采纳率:67%
帮助的人:982万
展开全部

参数是基本类型就是传值,传对象就是引用传递。

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;

无效。

大数据小库
2019-05-01 · TA获得超过7230个赞
知道大有可为答主
回答量:5477
采纳率:84%
帮助的人:602万
展开全部
把x和y做成对象,休息不是装箱类那种,然后在swap几年修改x y当中的成员变量。其实几乎所有语言函数调用都是这样,不给改变形参的指向,当形参是简单类型就是不能改变值的意思。你还是不要想着去改变形参好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式