java中方法调用方法难道不需要返回值传递结果吗?麻烦看下下面的代码,谢谢。

privatestaticvoidreverse(char[]arr){for(intstart=0,end=arr.length-1;start<end;start++... private static void reverse(char[] arr)
{
for (int start = 0,end = arr.length -1;start<end ;start++,end-- )
{
swap(arr,start,end);
}
}

private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x]=arr[y];
arr[y]=temp;
}

public static String reverseString(String s)
{
char[] chs = s.toCharArray();
reverse(chs);
return new String(chs);
}
public static void main(String[] args)
{
String s = " ab cd ";
sop("("+s+")");
sop("("+reverseString(s)+")");
}
我是想知道reverseString方法中的reverse(chs)是如何把运算结果传给reverseString方法的。
展开
 我来答
luha0000
2012-09-18
知道答主
回答量:13
采纳率:0%
帮助的人:14.7万
展开全部
不用返回值的,在reverseString方法里调用reverse(chs)已经把chs的真值传过去了,然后在reverse方法里调用swap方法改变arr的值其实就是改变chs的值,所以此时chs的值已经改变。不需要再返回值了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cainiaokan
2012-09-18 · TA获得超过2917个赞
知道小有建树答主
回答量:651
采纳率:66%
帮助的人:611万
展开全部
数组是对象所以reverseString中的。char[] chs作为参数传入reverse函数的时候,发生的是引用传递。(要知道java中只有基本数据类型和String才发生值传递。对象是引用传递的)。既然是引用传递。reverse方法中改变的chs。对外部函数reverseString来讲,依然是“可见的”。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式