我创建了一个名为Times的类,我必须构造4个重载的方法。我只想帮助理解重载的方法,至少也许可以帮助第一个方法。我真的很感激。谢谢:)重载方法的帮助
- 乘法2点的整数,并返回(整数)产物
- 乘法3点的整数,并返回(整数)产物
- 乘法2个值和返回的(双)产品
- 乘法3个精度值和返回(双)产品
我创建了一个名为Times的类,我必须构造4个重载的方法。我只想帮助理解重载的方法,至少也许可以帮助第一个方法。我真的很感激。谢谢:)重载方法的帮助
“重载方法”只是意味着方法将具有相同的名称(并且在同一个类中)。但是,参数的数量或类型需要不同。
由于所有乘法的东西,“乘”作为一个名字是有道理的。
第一招:
乘2点的整数,并返回 (整数)产品
所以它返回一个整数(一个int),被命名为 “正片叠底”,需要2个整数作为参数,这给了我们:
int multiply(int a, int b) {
它返回的产品,所以身体是:
return a * b;
然后,我们有一个做:
}
这给了我们:
int multiply(int a, int b) {
return a * b;
}
使用他人相同的方法和相同的名称。
它看起来财产以后这样的:
public class Times {
public int mult(int a, int b) {
return a*b;
}
public int mult(int a, int b, int c) {
return a*b*c;
}
//2 more overloaded versions to come here
}
至于理解它们的含义 - 编译代码时,编译器通过查看参数来确定使用哪些方法(全部调用相同的名称)。
如此例如这样的事情
int a = 1;
int b = 1;
Times t = new Times();
t.mult(a,b);
编译器将挑选的2种MULT方法我演示了1,而对于这一点:
int a = 1;
int b = 1;
int c = 2;
Times t = new Times();
t.mult(a,b,c);
它会选择第二个(以关于参数的数量)
是这样的?
public class Times {
public static int multiply(int a, int b) {
return a * b;
}
public static int multiply(int a, int b, in c) {
return multiply(a, b) * c;
}
public static double multiply(double a, double b) {
return a * b;
}
public static double multiply(double a, double b) {
return multiply(a, b) * c;
}
}
你可以做这样的事情
public class Times {
public static void main(String[] args) {
System.out.println(multiplyInt(1,2));
System.out.println(multiplyDoubles(2.0,3.0));
}
public static int multiplyInt(int... numbers){
int multiply = 1;
for(int number : numbers){
multiply = multiply*number;
}
return multiply;
}
public static double multiplyDoubles(double... numbers){
double multiply = 1;
for(double number : numbers){
multiply = multiply*number;
}
return multiply;
}
}
在这里,你有什么是方法重载一个温柔的描述: http://en.wikipedia.org/wiki/Method_overloading – Alexandre