黑马程序员技术交流社区
标题:
关于方法重载的问题
[打印本页]
作者:
android2050
时间:
2013-3-20 08:56
标题:
关于方法重载的问题
比如在一个类中有
public int add1(float a,double b);
public int add2(double a,float b);
复制代码
参数的顺序不同问该类是否有问题啊??
问题补充:
不好意思啊 打错了 应该是都是add1方法名 同样的方法名
作者:
Alex shaw
时间:
2013-3-20 09:15
没有问题,这样就表明一类拥有两个同名方法,但是方法的参数类型和顺序不同,
在调用的时候,会根据传入的参数类型和顺序自动去调用响应的参数
比如说add1.(0.5f,0.34d)会调用上面的方法public int add1(float a,double b);
add1.(0.5d,0.34f)会调用下面的方法public int add1(double a,float b);
这就是重载的好处
作者:
仉钰
时间:
2013-3-20 09:20
本帖最后由 仉钰 于 2013-3-20 09:25 编辑
没有问题 方法重载 是 参数的个数和类型不同
对于顺序不同 我认为 实际就是 参数的类型不同
因为 谈到参数的顺序不同的前提 是 参数的类型不同 比如 两个参数都是double 那也就没有顺序问题了
所以对于不同类型的参数顺序不同 是构成方法重载的
作者:
沉默de羔羊
时间:
2013-3-20 09:23
重载方法满足以下条件:
1.方法名相同
2.方法的参数类型,个数,顺序至少有一项不相同
3.方法的返回类型可以不相同
4.方法的修饰符可以不相同
根据你代码可以看出,他满足1和2,方法名称相同参数列表顺序不同!
作者:
何仕映
时间:
2013-3-20 09:44
没有问题的,这个就是函数的重载。函数重载只在参数上体现,只要参数不同就是重载。包括参数的顺序。
作者:
王龙涛
时间:
2013-3-20 09:55
重载要满足一下条件:
1.必须是同一个类
2.方法名(函数名)一样
3.参数类型不一样或参数数量不一样
public int add1(float a,double b);
public int add1(double a,float b);
复制代码
你的方法符合上面三个条件,就是重载,没有问题。
你先后传的参数类型不一样,这就是重载你的好处
你输入什么参数,系统就调用什么程序。
你输入(2.3f,34.56)就调用第一个。
你输入(34.56,2.3f)就调用第二个。
作者:
李阳阳
时间:
2013-3-20 12:17
方法的重载是指在一个类或接口中可以有多个相同名称的方法,不过这些相同名称的方法具有不同的形参,
及参数个数的不同或参数的类型不同。例如:下面代码中有四个同名的show()方法,但是有不同的参数,
因此这四个就是重载的方法。
class Test
{
void show()//没有参数的show()方法
{
System.out.println("一个参数也没有");
}
void show(String s)//有一个String类型参数的show()方法
{
System.out.println("有一个String类型参数的show()方法,你传的参数时是:"+s);
}
void show(int a)//有一个int类型参数的show()方法
{
System.out.println("有一个int类型参数的show()方法,你传的参数时是:"+a);
}
void show(String s1,String s2)//有两个String类型参数的show()方法
{
System.out.println("有两个String类型参数的show()方法,你传的参数时是"+s1+"和"+s2);
}
}
复制代码
作者:
李阳阳
时间:
2013-3-20 12:17
方法的重载是指在一个类或接口中可以有多个相同名称的方法,不过这些相同名称的方法具有不同的形参,
及参数个数的不同或参数的类型不同。例如:下面代码中有四个同名的show()方法,但是有不同的参数,
因此这四个就是重载的方法。
class Test
{
void show()//没有参数的show()方法
{
System.out.println("一个参数也没有");
}
void show(String s)//有一个String类型参数的show()方法
{
System.out.println("有一个String类型参数的show()方法,你传的参数时是:"+s);
}
void show(int a)//有一个int类型参数的show()方法
{
System.out.println("有一个int类型参数的show()方法,你传的参数时是:"+a);
}
void show(String s1,String s2)//有两个String类型参数的show()方法
{
System.out.println("有两个String类型参数的show()方法,你传的参数时是"+s1+"和"+s2);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2