Java 重载方法的帮助

Java 重载方法的帮助,java,overloading,Java,Overloading,我已经创建了一个名为Times的类,我必须构造4个重载方法。我只是想了解一些重载方法的帮助,至少对第一个方法有一些帮助。我会非常感激的。谢谢:) 将2个整数相乘并返回(整数)乘积 将3个整数相乘并返回(整数)乘积 将2个双倍值相乘并返回(双)乘积 将3个双倍值相乘并返回(双)乘积 它看起来像这样: public class Times { public int mult(int a, int b) { return a*b; } public int

我已经创建了一个名为Times的类,我必须构造4个重载方法。我只是想了解一些重载方法的帮助,至少对第一个方法有一些帮助。我会非常感激的。谢谢:)

  • 将2个整数相乘并返回(整数)乘积
  • 将3个整数相乘并返回(整数)乘积
  • 将2个双倍值相乘并返回(双)乘积
  • 将3个双倍值相乘并返回(双)乘积

    • 它看起来像这样:

      
      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);
      
      编译器将选择我演示的两个mult方法中的第一个,而对于此:

      
      int a = 1;
      int b = 1;
      int c = 2;
      Times t = new Times();
      t.mult(a,b,c);
      

      它将选择第二个(基于参数的数量)

      它看起来像这样:

      
      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);
      
      编译器将选择我演示的两个mult方法中的第一个,而对于此:

      
      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 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;
          }
      }
      
      “重载方法”只是意味着所有方法都具有相同的名称(并且在同一个类中)。但是,参数的数量或类型需要不同

      既然都是乘法,那么“乘法”这个名字就有意义了

      第一个:

      将2个整数相乘并返回 (整数)积

      所以它返回一个整数(一个int),名为“乘法”,取2个int作为参数,得到:

      int multiply(int a, int b) {
      
      int multiply(int a, int b) {
          return a * b;
      }
      
      它返回产品,因此主体是:

          return a * b;
      
      然后我们就完成了这个:

      }
      
      这给了我们:

      int multiply(int a, int b) {
      
      int multiply(int a, int b) {
          return a * b;
      }
      
      对其他方法使用相同的方法和相同的名称。

      “重载方法”只是意味着所有方法都具有相同的名称(并且在同一类中)。但是,参数的数量或类型需要不同

      既然都是乘法,那么“乘法”这个名字就有意义了

      第一个:

      将2个整数相乘并返回 (整数)积

      所以它返回一个整数(一个int),名为“乘法”,取2个int作为参数,得到:

      int multiply(int a, int b) {
      
      int multiply(int a, int b) {
          return a * b;
      }
      
      它返回产品,因此主体是:

          return a * b;
      
      然后我们就完成了这个:

      }
      
      这给了我们:

      int multiply(int a, int b) {
      
      int multiply(int a, int b) {
          return a * b;
      }
      

      对其他人使用相同的方法和相同的名称。

      您可以这样做

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

      }你可以这样做

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

      }

      这里您对什么是方法重载有一个温和的描述:这里您对什么是方法重载有一个温和的描述: