Java方法的重载

方法的重载

1.定义

        方法的重载就是一个类中允许一个以上同名方法存在,只要这些方法的参数个数参数类型不同即可。

package classExtends;

public class OverLoadTest {
    public static int add(int a, int b) {
        return a + b;
    }

    public static double add(double a, double b) {
        return a + b;
    }

    public static int add(int a) {
        return a;
    }

    public static int add(int a, double b) {
        return a + (int) b;
    }

    public static int add(double a, int b) {
        return (int) a + b;
    }

    public static void main(String[] args) {
        System.out.println("调用add(int,int)方法:" + add(1, 2));    //调用add(int,int)方法:3
        System.out.println("调用add(double,double)方法:" + add(2.1, 3.2));  //调用add(double,double)方法:5.300000000000001
        System.out.println("调用add(int)方法:" + add(2));   //调用add(int)方法:2
        System.out.println("调用add(int,double)方法:" + add(2, 2.1));   //调用add(int,double)方法:4
    }
}

Java方法的重载_第1张图片

        编译器是通过【方法名+方法各参数类型+参数个数+参数顺序】来确定类中的方法是否唯一。

2.不定长参数

2.1 语法:

        返回值 方法名(参数类型...参数名)

        在参数列表中使用”...“形式定义不定长参数,其实这个不定长参数a就是个数组,编译器会将”int...a“这种形式看做”int[] a“.

package classExtends;

public class OverLoadTest {
    public static int add(int a, int b) {
        return a + b;
    }

    public static double add(double a, double b) {
        return a + b;
    }

    public static int add(int a) {
        return a;
    }

    public static int add(int a, double b) {
        return a + (int) b;
    }

    public static int add(double a, int b) {
        return (int) a + b;
    }

    public static int add(int... a) {   //定义不定长参数方法
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            sum += a[i];
        }
        return sum;
    }

    public static void main(String[] args) {
        System.out.println("调用add(int,int)方法:" + add(1, 2));    //调用add(int,int)方法:3
        System.out.println("调用add(double,double)方法:" + add(2.1, 3.2));  //调用add(double,double)方法:5.300000000000001
        System.out.println("调用add(int)方法:" + add(2));   //调用add(int)方法:2
        System.out.println("调用add(int,double)方法:" + add(2, 2.1));   //调用add(int,double)方法:4

        //调用不定长参数方法
        System.out.println("调用不定长参数方法:" + add(1, 2, 3, 4, 5, 6));   //调用不定长参数方法:21
        System.out.println("调用不定长参数方法:" + add(1));  //调用不定长参数方法:1
    }
}

你可能感兴趣的:(Java,java,开发语言)