黑马程序员技术交流社区

标题: 请教一个关于方法重载的问题 [打印本页]

作者: roybill    时间: 2015-5-13 22:13
标题: 请教一个关于方法重载的问题
2.请问方法重载的好处是什么?自己也对比了其他的例子,看了几遍代码还是不太理解,谢谢了!
public class lingwuyisan22
{ public static void main(String[] args)
{
  int sum1=add(1,2);
  int sum2=add(1,2,3);
  double sum3=add(1.2,2.3);
  System.out.println("sum1="+sum1);
  System.out.println("sum2="+sum2);
  System.out.println("sum3="+sum3);
}
public static int add(int x,int y)
{
  return x+y;
}
public static int add(int x,int y,int z)
{
  return x+y+z;
}
public static double add(double x,double y)
{
  return x+y;
}
}
作者: 黄冬    时间: 2015-5-13 23:21
通俗点说,方法重载的好处就是方便方法的调用,比如例子中的加法计算,两个相加命名为add1,三个相加命名为add2,等等很多,在调用的就是就不知道哪个是哪个了;而如果有重载的话,只要定义的方法够全面,再做相加计算的时候只需要调用add(参数,参数。。。)就可以了,不用纠结调用具体哪一个
作者: 鸿鹄2008    时间: 2015-5-14 00:05
那样的话方法名要复杂了

作者: 雪风飞花    时间: 2015-5-14 00:38
就是你要用同一个方法实现不同的功能就需要重载
作者: 过路人    时间: 2015-5-14 02:19
同一个方法名可以处理不同参数类型的相同功能的问题
作者: 鱼饵    时间: 2015-5-14 08:14
学习了。
作者: 枕寒流    时间: 2015-5-14 08:27
方法重载不就是为了用同一个方法名么
作者: hzhzhen    时间: 2015-5-14 10:44
你传什么参数  对应就会调用什么方法啊
作者: 刘冬    时间: 2015-5-14 11:12
一个方法名可以解决不同参数的问题
作者: roybill    时间: 2015-5-14 18:57
黄冬 发表于 2015-5-13 23:21
通俗点说,方法重载的好处就是方便方法的调用,比如例子中的加法计算,两个相加命名为add1,三个相加命名为 ...

非常感谢,学习了!
作者: liya7907    时间: 2015-5-14 19:10
不同的初始化方式呗,根据不同的参数类型和数量来不同的初始化。
作者: tanzhixue    时间: 2015-5-14 19:16
好处同一个函数可以重复使用多次 ,不然你得写一堆同样的程序,也就是提高复用性 简化代码
作者: 开到荼靡    时间: 2015-5-14 19:43
1.在一个类中;
        2.定义多个同名的方法;
        3.形参列表不完全相同:
          1).如果数据类型相同,数量不同,可以的:
                例如:public static void fun(int a,int b){}
                      public static void fun(int a,int b,int c){};//OK的,构成重载;
          2).如果有多个数据类型,顺序不同,可以的:
                例如:public static void fun(int a,long b){}
                      public static void fun(long a,int b){}//OK的,构成重载;
          3).跟返回值无关;
                例如:public static void fun(int a ,int b){}
                      public static int fun(int a,int b){}//NO的,不构成重载;
          4).跟形参名无关:
                例如:public static void fun(int a,int b){}
                      public static void fun(int b,int a){}//错误的,不构成重载;
作者: 晚风吹舟行    时间: 2015-5-14 19:51
就是调用时方便
作者: guojiadui    时间: 2015-5-14 20:22
这也是一种多态,让一种方法有不同的作用,
作者: 吴富其    时间: 2015-5-14 20:48
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。
作者: V_nan    时间: 2015-5-14 20:55
为了方便调用,而且阅读性也好点
作者: w401634075    时间: 2015-5-14 23:20
命名起来更加规范吧,而且,如果没有方法重载,构造方法似乎只能有一个了,会出问题的
作者: 唐泉银    时间: 2015-5-14 23:25
重载只是为了区分同名函数的,方便调用
作者: 代码搬运1号    时间: 2015-5-14 23:36
赞以个!!!




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