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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© android2050 中级黑马   /  2013-3-20 08:56  /  1953 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如在一个类中有
  1. public int add1(float a,double b);
  2. public int add2(double a,float b);
复制代码
参数的顺序不同问该类是否有问题啊??
问题补充:
不好意思啊  打错了 应该是都是add1方法名  同样的方法名

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-20 19:33

评分

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

查看全部评分

7 个回复

倒序浏览
没有问题,这样就表明一类拥有两个同名方法,但是方法的参数类型和顺序不同,
在调用的时候,会根据传入的参数类型和顺序自动去调用响应的参数
比如说add1.(0.5f,0.34d)会调用上面的方法public int add1(float a,double b);
add1.(0.5d,0.34f)会调用下面的方法public int add1(double a,float b);
这就是重载的好处

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 仉钰 于 2013-3-20 09:25 编辑

没有问题  方法重载 是 参数的个数和类型不同
对于顺序不同 我认为 实际就是 参数的类型不同   

因为 谈到参数的顺序不同的前提  是 参数的类型不同   比如  两个参数都是double  那也就没有顺序问题了

所以对于不同类型的参数顺序不同  是构成方法重载的

评分

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

查看全部评分

回复 使用道具 举报
重载方法满足以下条件:
1.方法名相同
2.方法的参数类型,个数,顺序至少有一项不相同
3.方法的返回类型可以不相同
4.方法的修饰符可以不相同

根据你代码可以看出,他满足1和2,方法名称相同参数列表顺序不同!

评分

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

查看全部评分

回复 使用道具 举报
没有问题的,这个就是函数的重载。函数重载只在参数上体现,只要参数不同就是重载。包括参数的顺序。
回复 使用道具 举报
重载要满足一下条件:
1.必须是同一个类
2.方法名(函数名)一样
3.参数类型不一样或参数数量不一样
  1. public int add1(float a,double b);
  2. public int add1(double a,float b);
复制代码
你的方法符合上面三个条件,就是重载,没有问题。
你先后传的参数类型不一样,这就是重载你的好处
你输入什么参数,系统就调用什么程序。
你输入(2.3f,34.56)就调用第一个。
你输入(34.56,2.3f)就调用第二个。

评分

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

查看全部评分

回复 使用道具 举报
  方法的重载是指在一个类或接口中可以有多个相同名称的方法,不过这些相同名称的方法具有不同的形参,
及参数个数的不同或参数的类型不同。例如:下面代码中有四个同名的show()方法,但是有不同的参数,
因此这四个就是重载的方法。
  1. class Test
  2. {
  3.         void show()//没有参数的show()方法
  4.         {
  5.                 System.out.println("一个参数也没有");
  6.         }
  7.         void show(String s)//有一个String类型参数的show()方法
  8.         {
  9.                 System.out.println("有一个String类型参数的show()方法,你传的参数时是:"+s);
  10.         }
  11.         void show(int a)//有一个int类型参数的show()方法
  12.         {
  13.                 System.out.println("有一个int类型参数的show()方法,你传的参数时是:"+a);
  14.         }
  15.         void show(String s1,String s2)//有两个String类型参数的show()方法
  16.         {
  17.                 System.out.println("有两个String类型参数的show()方法,你传的参数时是"+s1+"和"+s2);
  18.         }
  19. }
复制代码

评分

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

查看全部评分

回复 使用道具 举报
  方法的重载是指在一个类或接口中可以有多个相同名称的方法,不过这些相同名称的方法具有不同的形参,
及参数个数的不同或参数的类型不同。例如:下面代码中有四个同名的show()方法,但是有不同的参数,
因此这四个就是重载的方法。
  1. class Test
  2. {
  3.         void show()//没有参数的show()方法
  4.         {
  5.                 System.out.println("一个参数也没有");
  6.         }
  7.         void show(String s)//有一个String类型参数的show()方法
  8.         {
  9.                 System.out.println("有一个String类型参数的show()方法,你传的参数时是:"+s);
  10.         }
  11.         void show(int a)//有一个int类型参数的show()方法
  12.         {
  13.                 System.out.println("有一个int类型参数的show()方法,你传的参数时是:"+a);
  14.         }
  15.         void show(String s1,String s2)//有两个String类型参数的show()方法
  16.         {
  17.                 System.out.println("有两个String类型参数的show()方法,你传的参数时是"+s1+"和"+s2);
  18.         }
  19. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马