黑马程序员技术交流社区

标题: 关于重载函数,有个题不理解 [打印本页]

作者: 庄生晓梦    时间: 2013-4-11 17:00
标题: 关于重载函数,有个题不理解
本帖最后由 庄生晓梦 于 2013-4-12 09:57 编辑

class StringTest1
{
public static void main(String[] args)
{
  String s = "       ab cd      ";
  sop("<" + s +">");
  sop("<"+reverseString(s,7,8)+">");
}
public static void sop(String str)
{
  System.out.println(str);
}
public static String reverseString(String str,int start,int end)
{
  char[] chs = str.toCharArray();
  reverse(chs,start,end);
  return new String(chs);
}
public static String reverseString(String str)
{
  char[] chs = str.toCharArray();
  reverse(chs);
  return new String(chs);
}
public static void reverse(char[] arr,int x,int y)
{
  for(int start=x,end=y-1; start<end; start++,end--)
  {
   swap(arr, start, end);
  }
}
public static void swap(char[] arr,int x,int y)
{
  char temp = arr[x];
   arr[x] = arr[y];
   arr[y] = temp;
}
}
这里reserverString()方法重载,为什么在调用其中一个时,会发生

重载函数的使用在这需要注意什么????


作者: 潘廖明    时间: 2013-4-11 17:37
一、在这里首先给你点建议:
(1)这代码格式不按发帖的要求,别人帮你解决问题用你的代码多不方便。
(2)代码从头到尾,连个方法的注释都没有,你不说明下你的方法,别说我们过两天
你自己来看都要费劲。
(3)你提的问题都是有错误的,标题是不是漏了一个字。
二、重载总结
一句话“两同一不同”:在同一个类中、方法名相同,参数列表不同:包括参数类型不同、
参数个数不同。与方法返回值类型、权限修饰符无关。
三、本题问题
你这是函数调用的问题,跟重载无关。
你看:
  1. public static String reverseString(String str)
  2. {
  3.   char[] chs = str.toCharArray();
  4. //错误根源
  5.   reverse(chs);//你的类里面出现过这样的形式的参数列表?
  6.   return new String(chs);
  7. }
复制代码

作者: 赵晓东    时间: 2013-4-11 18:00
楼上+1,格式真心要好好搞。
其实,看错误提示就可以看出来了,第23行的reverse(chs);你只传递了一个形式参数,错误提示说:需要char[],int,int 但你只给提供了一个:char[]
而且你定义的方法中又没有定义reverse(char[] name)这样的方法,所以报错了
作者: 庄生晓梦    时间: 2013-4-12 09:53
多谢提醒,我以后会写格式和注释问题的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2