复习知识点十之方法的重载

目录

方法的重载 

  练习1:

练习1: 数组遍历

 练习2: 数组的最大值

练习3:

练习4: 复制数组

基本数据类型和引用数据类型


方法的重载 

 Java虚拟机会通过参数的不同来区分同名的方法

 

  练习1:

public class Test4 {
    public static void main(String[] args) {
        //调用方法
//        compare(10,30);

        // compare((byte) 10,(byte) 20);

        short b1 = 10;
        short b2 = 20;
        compare(b1,b2);
    }

    //会把相同功能的方法名起成一样的名字
    //好处1 : 定义方法的时候可以不用那么多的单词了
    //好处2 : 调用方法是时候也不需要那么麻烦了

    public static void compare(byte b1, byte b2) {
        System.out.println("byte");
        System.out.println(b1 == b2);
    }

    public static void compare(short s1, short s2) {
        System.out.println("short");
        System.out.println(s1 == s2);
    }

    public static void compare(long n1, long n2) {
        System.out.println("long");
        System.out.println(n1 == n2);
    }

    public static void compare(int i1, int i2) {
        System.out.println("int");
        System.out.println(i1 == i2);
    }
}

练习1: 数组遍历

需求:设计一个方法用于数组遍历  ,要求遍历的结果是在一行上的.例如 : [11, 22, 33, 44, 55]

分析:

定义方法用于数组的遍历
1. 我要干嘛? 遍历数组
2. 我做这件事需要什么才能完成? 数组
3. 方法的调用处是否需要继续使用结果? 不需要返回值
public class Test5 {
    public static void main(String[] args) {
        //1. 定义数组
        int[] arr  ={11,22,33,44,55};
        printArr(arr);

    }
    public static void printArr(int[] 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] + ",");
          }
        }
        System.out.println("]");
    }
}

 

扩展: 

 练习2: 数组的最大值

设计一个方法求数组的最大值,并将最大值返回

分析:

    1. 我要干嘛?    求最大值
    2. 我干这件事情,需要什么才能完成?  数组
     3. 是否需要返回值?  是

package com.itheima.test;

public class Test6 {
    public static void main(String[] args) {
        //1. 定义数组
        int[] arr  ={1,2,9 ,4,5};

        //2. 调用方法求最大值
        int max = getMax(arr);
        System.out.println(max);

    }
    public static int getMax(int[] arr){
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }
}

练习3:

定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处

分析:

1. 我要做什么?            判断一个数是否存在

2. 我干这件事情,需要什么才能完成?  数组
 3. 调用处是否需要继续使用结果?  返回  true false

public class Test6 {
    public static void main(String[] args) {
        //1. 定义数组
        int[] arr  ={16,2,9 ,4,522,7,3};

        //2. 判断数字在数组中是否存在了
        boolean flag = contains(arr,7);
        System.out.println(flag);
    }
    public static boolean contains(int[] arr, int number){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == number){
                return true;
            }
        }
        //当数组里面所有的数据全部都比较完毕之后,才能断定
        return false;
    }
}

练习4: 复制数组

 分析在代码的注释里面

 

public class Test8 {
    public static void main(String[] args) {
        //1. 定义数组
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        //2. 调用方法拷贝数据
        int[] copyArr = copyOfRange(arr, 3, 7);
        //3.遍历copyArr
        for (int i = 0; i < copyArr.length; i++) {
            System.out.print(copyArr[i] + " ");
        }
    }

    //将数组arr中从索引 from (包含 from) 开始,到索引 to 结束(不包含 to) 的元素复制到新的数组中
    public static int[] copyOfRange(int[] arr, int from, int to) {
        //1. 定义数组
        int[] newArr = new int[to - from];
        //2. 把原始的数组arr中的from 到 to 上对应的元素,直接拷贝到newArr中
        //伪造变量
        int index = 0;
        for (int i = from; i < to; i++) {
            //格式:数组名[索引] = 数据值
            newArr[index] = arr[i];
            index++;
        }
        //3. 把新数组返回
        return newArr;
    }
}

基本数据类型和引用数据类型

猜你喜欢

转载自blog.csdn.net/m0_57448314/article/details/129248202