方法的重载

  1. 在同一个类中定义了多个同名的方法,这些同名的方法具有同种的功能。
  2. 每个方法具有不同的参数类型或参数个数。这些同名的方法就构成了重载关系。

总结:同一个类中方法名相同,参数不同的方法(形参不同)叫方法的重载,方法的重载与返回值无关

参数不同:个数不同,类型不同,顺序不同

注意:参数的顺序不同可以构成重载,但是不建议

判断方法是否构成重载的条件:

  1. 在同一个类里面
  2. 方法名相同
  3. 形参是不同的

练习:

package com.itheima.Method;
//需求:使用方法重载的思想设计比较两个整数是否相同的方法?
//要求:兼容全整数类型(Byte short int long)
public class Demo10 {
    public static void compareNumber(byte b1,short b2){
        System.out.println("byte");
        System.out.println(b1==b2);
    }
    public static void compareNumber(short s1,short s2){
        System.out.println("short");
        System.out.println(s1==s2);
    }
    public static void compareNumber(int i1,int i2){
        System.out.println("int");
        System.out.println(i1==i2);
    }
    public static void compareNumber(long l1,long l2){
        System.out.println("long");
        System.out.println(l1==l2);
    }
    public static void main(String[] args) {
            compareNumber((byte)5,(byte)8);
            compareNumber((short) 10,(short) 20);
            compareNumber((int)45,(int)21);
            compareNumber((long)126,(long)45);
    }
}

运行结果:

byte
false
short
false
int
false
long
false

方法的练习

练习1:

package com.itheima.Method;
//需求:设计一个方法用于数组遍历,要求便利的结果是在一行上的
public class Demo11Test01 {
    public static void  Arr(double[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i== arr.length-1){
            System.out.print(arr[i]);
            }else {
                System.out.print(arr[i]+", ");//当i!=数组长度时打印输出数组元素再加一个逗号
            }
        }
        System.out.println("]");
    }

    public static void main(String[] args) {
        double[] arr = {11,22,33,44,55};
        Arr(arr);
    }
}

运行结果:

[11.0, 22.0, 33.0, 44.0, 55.0]

练习2:

package com.itheima.Method;
//需求:设计一个方法,求数组的最大值,并将最大值返回
public class Demo11Test02 {
    public static int getMax(int[] arr) {
        int max =arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }

    public static void main(String[] args) {
        int[] arr = {45,23,51,67,82,03};
        int max = getMax(arr);
        System.out.println(max);
    }
}

运行结果:

82

练习3:

package com.itheima.Method;
//定义一个方法,判断数组中的某一个数是否存在将结果返回给调用处。
public class Demo11Test03 {
    public static boolean contains(int[] arr,int number) {
        for (int i = 0; i < arr.length; i++) {
            if (number == arr[i]) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] arr = {11, 22, 33, 44, 55};
        boolean c = contains(arr,33);
        System.out.println(c);
    }
}

运行结果:

true

练习4:

package com.itheima.Method;
//需求:定义一个方法copyOfRange(int[],int from,int to)
//功能:将数组arr中从索引from(包含from)开始到索引to结束(不包含to)的元素复复新数组中,将新数组返回
public class Demo11Test04 {
    public static int[] copyOfRange(int[] arr,int from,int to) {
        //1、定义的数组
        int[] newArr = new int[to-from];
        //把原始数组arr中的from到to上对应的元素,直接拷贝到newArray中
        //伪造一个索引
        int index = 0;
        for (int i = from; i < to; i++) {
            newArr[index] = arr[i];
            index++;
        }
        return newArr;
    }

    public static void main(String[] args) {
        //1、定义原始数组
        int[] arr = {11,22,33,44,55,66};
        //2、调用方法拷贝数据
        int[] copyArr = copyOfRange(arr,1,4);
        //3、遍历copyArr
        for (int i = 0; i < copyArr.length; i++) {
            System.out.print(copyArr[i]+" ");
        }
    }
}

运行结果:
22 33 44