帮助重载方法

时间:2010-02-24 19:51:29

标签: java overloading

我创建了一个名为Times的类,我必须构造4个重载方法。我只想帮助理解重载方法,至少可能对第一个方法有所帮助。我真的很感激。谢谢:))

  • 乘以2个整数并返回(整数)乘积
  • 乘以3个整数并返回(整数)乘积
  • 乘以2个double值并返回(double)乘积
  • 乘以3个double值并返回(double)乘积

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;
}

}