我创建了一个名为Times的类,我必须构造4个重载方法。我只想帮助理解重载方法,至少可能对第一个方法有所帮助。我真的很感激。谢谢:))
答案 0 :(得分:3)
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;
}
}
答案 1 :(得分:2)
“重载方法”只意味着这些方法都具有相同的名称(并且在同一个类中)。但是,参数需要在数量或类型上有所不同。
由于所有乘法的东西,“乘法”作为名称是有意义的。
第一个:
乘以2个整数并返回 (整数)产品
所以它返回一个整数(一个int),命名为“multiply”,取2个int作为参数,这给了我们:
int multiply(int a, int b) {
它返回产品,因此正文是:
return a * b;
然后我们完成了那个:
}
这给了我们:
int multiply(int a, int b) {
return a * b;
}
对其他人使用相同的方法和相同的名称。
答案 2 :(得分:1)
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个多方法中的第一个,而为此:
int a = 1;
int b = 1;
int c = 2;
Times t = new Times();
t.mult(a,b,c);
它将选择第二个(基于参数的数量)
答案 3 :(得分:0)
你可以做这样的事情
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;
}
}