A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庄生晓梦 中级黑马   /  2013-4-11 17:00  /  1115 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 庄生晓梦 于 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()方法重载,为什么在调用其中一个时,会发生

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

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

3 个回复

倒序浏览
一、在这里首先给你点建议:
(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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
楼上+1,格式真心要好好搞。
其实,看错误提示就可以看出来了,第23行的reverse(chs);你只传递了一个形式参数,错误提示说:需要char[],int,int 但你只给提供了一个:char[]
而且你定义的方法中又没有定义reverse(char[] name)这样的方法,所以报错了
回复 使用道具 举报
多谢提醒,我以后会写格式和注释问题的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马