永发信息网

java工具类调用问题。 代码如下 为什么运行结构还是 a=2,b=5. 没有进行交换?

答案:5  悬赏:60  手机版
解决时间 2021-04-07 19:14
  • 提问者网友:凉末
  • 2021-04-07 12:38
java工具类调用问题。 代码如下 为什么运行结构还是 a=2,b=5. 没有进行交换?
最佳答案
  • 五星知识达人网友:长青诗
  • 2021-04-07 13:09
你这样写明显不能交换,先看看你写的交换方法把。

public static void swap(int x,int y)
{
int z;
z=x;
x=y;
y=z;
}

你这个形参的值改变,根本不会影响到实参数值的变化,
int a=2,b=5;
ArrayTool.swap(a,b);
得到a的值仍然为2,b仍然为5.你需要把方法改成对象的引用,因为参数传递引用可以改变引用指向的对象状态,比如采用数组就可以办到。
但你的main需要改变,这里我就不写了。在java中建议不要这样写
全部回答
  • 1楼网友:往事埋风中
  • 2021-04-07 15:06
厉害
  • 2楼网友:長槍戰八方
  • 2021-04-07 14:57
java参数按值传递,变量本身不变。可把System.out.println("a="+a+",b="+b);
放到方法swap(a,b)中看看;结果会不一样
java基本功不牢 多看
  • 3楼网友:琴狂剑也妄
  • 2021-04-07 14:11
你传过去的是a和b,但是经过函数调用,ab的值并没有变化啊!a还是等于2,b还是等于5,不知道这么说你能不能懂!
  • 4楼网友:笑迎怀羞
  • 2021-04-07 13:25
你的函数是实现不了将两数交换的,你想想c语言的指针吧。public static void swap(int x,int y)
{
int z;
z=x;
x=y;
y=z;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯