• java之方法重载


    原因:

    看一下这个例子

     1 public class MethodDemo02 {
     2     public static void main(String[] args) {
     3         // 下面是针对求和方法的调用
     4         int sum1 = add01(1, 2);
     5         int sum2 = add02(1, 2, 3);
     6         double sum3 = add03(1.2, 2.3);
     7         // 下面的代码是打印求和的结果
     8         System.out.println("sum1=" + sum1);
     9         System.out.println("sum2=" + sum2);
    10         System.out.println("sum3=" + sum3);
    11     }
    12 
    13     // 下面的方法实现了两个整数相加
    14     public static int add01(int x, int y) {
    15         return x + y;
    16 }
    17     // 下面的方法实现了三个整数相加
    18     public static int add02(int x, int y, int z) {
    19         return x + y + z;
    20     }
    21     // 下面的方法实现了两个小数相加
    22     public static double add03(double x, double y) {
    23         return x + y;
    24     }
    25 }

    从上述代码不难看出,程序需要针对每一种求和的情况都定义一个方法,如果每个方法的名称都不相同,在调用时就很难分清哪种情况该调用哪个方法。

    为了解决这个问题,Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载

    接下来通过方法重载的方式进行修改,如下所示。MethodDemo03.java

     1 public class MethodDemo03 {
     2     public static void main(String[] args) {
     3         // 下面是针对求和方法的调用
     4         int sum1 = add(1, 2);
     5         int sum2 = add(1, 2, 3);
     6         double sum3 = add(1.2, 2.3);
     7         // 下面的代码是打印求和的结果
     8         System.out.println("sum1=" + sum1);
     9         System.out.println("sum2=" + sum2);
    10         System.out.println("sum3=" + sum3);
    11     }
    12 
    13     // 下面的方法实现了两个整数相加
    14     public static int add(int x, int y) {
    15         return x + y;
    16     }
    17     // 下面的方法实现了三个整数相加
    18 public static int add(int x, int y, int z) {
    19         return x + y + z;
    20     }
    21     // 下面的方法实现了两个小数相加
    22     public static double add(double x, double y) {
    23         return x + y;
    24     }
    25 }

    上述代码中定义了三个同名的add()方法,它们的参数个数或类型不同,从而形成了方法的重载。在main()方法中调用add()方法时,通过传入不同的参数便可以确定调用哪个重载的方法。

    注意事项;

    1. 重载方法参数必须不同:

    参数个数不同,如method(int x)与method(int x,int y)不同

    参数类型不同,如method(int x)与method(double x)不同g

    参数顺序不同,如method(int x,double y)与method(double x,int y)不同

    2.  重载只与方法名与参数类型相关与返回值无关

    如void method(int x)与int method(int y)不是方法重载,不能同时存在

    3. 重载与具体的变量标识符无关

    如method(int x)与method(int y)不是方法重载,不能同时存在

  • 相关阅读:
    使用PWS调试cgi,php
    解决联想电脑常见故障及内存不足的几种方法
    How Many Tables (并查集)
    Prim
    小希的迷宫(并查集)
    并查集
    Is It A Tree?(并查集)
    hdu 1003 Max Sum(最大子窜和)
    More is better(并查集)
    01背包精讲
  • 原文地址:https://www.cnblogs.com/sunmoonyou/p/9327065.html
Copyright © 2020-2023  润新知