javaSE_Day_006

9.8 可变参数

(1)说明:可变参数是针对方法参数列表而准备的一种参数形式,一个方法的参数列表中只能有一个可变参数,并且这个可变参数只能在参数最后定义。

(2)作用:替代一些数组类型参数传递问题。

  • 可变参数确实可以对方法参数赋值提供一些便利操作,既然是可变参数,那么就意味着参数定义的时候可以什么都不传递,也可以传递多个参数值,
public class ArrayDemo2 {
    public static void main(String[] args) {
       //此时并不需要给可变参数赋值(可以什么参数都没有)
        showArray();
       //需要传递多个值进来
       showArray(1,2,3,4,5,6,7,8,9);
       //可变参数作为方法参数列表中数据类型定义时不仅可以接受正常数据,而且还可以接受数组类型数据
       int[] arr = {1,2,3,4};
       showArray(arr);
    }
    //这个方法使用可变参数 --> 可变参数定义  数据类型... 变量名
    public static void showArray(int... arr){ //int... arr 在底层处理原码中会被看做 int[] arr
        //在方法内部对可变参数操作就是 数组
        System.out.println("数组长度:"+arr.length);
    }
    //可变参数一个方法只能存在一个,并且必须定义在所有参数列表中参数的最后
    public static void showArray2(int b,double... arr){
        
    }
}

(3)总结:

  • 可变参数主要使用在方法参数列表中定义,它是一个变长参数(可以有也可以没有),允许赋值是对应类型数组,并且在方法体的内部是当做数组来处理的。
  • 可变参数在定义的时候只能定在所有参数最后,一种方法中只能定义一个可变参数。
  • 可变参数定义方式是:数据类型... 参数名

10. Arrays工具类

(1)说明:工具类是将项目中需要大量使用到的方法统一的封装到一个类中进行管理,通过这个类就可以调用类中所提供的方法完成需求。

  • 在JavaAPI中有大量的工具类,是Java原码开发人员对Java程序员开发程序时需要用到的常用方法进行了统一的实现。程序员无需二次实现,只要调用相关方法就可以处理逻辑需求。

11. 二维数组(了解)

(1)说明:二维数组其实就是在一个数组内部存储其他数组所形成的新的数组。

  • 二维数组中的每一个元素对应的是一个一维数组。
  • 二维数组类似于表格(有行有列):行代表是内部存储的一个一维数组;列代表是一维数组内部存储的数据。

12. Java方法中参数值传递和地址(引用)传递

在Java方法中所有参数传递都是“拷贝复制粘贴”,即将参数复制一份传递到方法参数类表中,然后提供给方法进行操作。

虽然Java方法中参数传递都是“拷贝复制粘贴”,但是传递的内容是不一样的,这个取决于使用的是基本数据类型还是引用数据类型。

(1)方法参数值传递(基本数据类型)

public class ValueMethodDemo {
    public static void main(String[] args) {
        //1.先不提供方法进行两个数据交换(在方法体内部实现两个数据交换是可以完成的)
        int a = 1;
        int b = 2;
        System.out.println("交换之前a变量的值:"+a);
        System.out.println("交换之前b变量的值:"+b);
        System.out.println("------------------------------------------------------");
         //2.调用swap方法完成数据交换
        swap(a,b);
        System.out.println("交换之后a变量的值:"+a);
        System.out.println("交换之后b变量的值:"+b);
    }
    /**
     * 提供两个数据交换的方法
     * @param a 接收数据a变量
     * @param b 接收数据b变量
     */
    public static void swap(int a , int b) {
        int tmp = a;
        a = b;
        b = tmp;
        System.out.println("swap方法中a变量的值:"+a);
        System.out.println("swap方法中b变量的值:"+b);
    }
}
  • 说明:

image

(2)方法参数地址(引用)传递(引用类型)

public class AddressMethodDemo {
    public static void main(String[] args) {
        //1.提供一个数组,数组中存储量两个数据的值
        int a = 1;
        int b = 2;
        int[] arr = {a,b};
        System.out.println("交换之前第一个位置的值:"+arr[0]);
        System.out.println("交换之前第二个位置的值:"+arr[1]);
        System.out.println("------------------------------------------------------");
         //2.调用swap方法完成数据交换
        swap(arr);
        System.out.println("交换之后第一个位置的值:"+arr[0]);
        System.out.println("交换之后第二个位置的值:"+arr[1]);
    }
    /**
     * 提供两个数据交换的方法
     * @param arr 存储数据的数组
     */
    public static void swap(int[] arr) {
        int tmp = arr[0];
        arr[0] = arr[1];
        arr[1] = tmp;

    }
}

  • 说明:

image

posted @ 2021-07-27 20:28  1706010214  阅读(27)  评论(0)    收藏  举报