3. 补充知识点:可变参数(3. Supplementary knowledge: variable parameters)

假如需要定义一个方法求和,该方法可以灵活的完成如下需求:

● 计算1个数据的和。

● 计算2个数据的和。

● 计算3个数据的和。

● 计算n个数据的和,甚至可以支持不接收参数进行调用。

可变参数

● 可变参数用在形参中可以接收多个数据。

● 可变参数的格式:数据类型…参数名称

可变参数的作用

● 传输参数非常灵活,方便。可以不传输参数,可以传输1个或者多个,也可以传输一个数组

● 可变参数在方法内部本质上就是一个数组

可变参数的注意事项

● 一个形参列表中可变参数只能有一个

● 可变参数必须放在形参列表的最后面

【代码示例】

public class MethodDemo {
    public static void main(String[] args) {
        sum(); // 1.不传参数
        sum(12); // 2.传输一个参数
        sum(13,23,33); // 3.传输多个参数
        sum(new int[]{10,20,30,40,50}); // 4.传输一个数组
    }

    public static void sum(int ... nums){
        System.out.println("元素个数:" + nums.length);
        System.out.println("元素内容:" + Arrays.toString(nums));
        System.out.println("-----------------");
    }
}

运行结果:

元素个数:0
元素内容:[]
-----------------
元素个数:1
元素内容:[12]
-----------------
元素个数:3
元素内容:[13, 23, 33]
-----------------
元素个数:5
元素内容:[10, 20, 30, 40, 50]
-----------------
————————

< strong > if you need to define a method for summation, this method can flexibly meet the following requirements: < / strong >

● calculate the sum of 1 data.

● calculate the sum of 2 data.

● calculate the sum of 3 data.

● calculate the sum of N data, and even support calling without receiving parameters.

< strong > variable parameters < / strong >

● variable parameters are used in formal parameters, and multiple data can be received.

● format of variable parameters: data type… Parameter name

< strong > function of variable parameters < / strong >

● transmission parameters are very flexible and convenient. You can transfer one or more parameters or an array without transferring parameters

● variable parameters are essentially an array inside the method

< strong > notes on variable parameters < / strong >

● there can only be one variable parameter in a formal parameter list

● variable parameters must be placed at the end of the formal parameter list

[code example]

public class MethodDemo {
    public static void main(String[] args) {
        sum(); // 1.不传参数
        sum(12); // 2.传输一个参数
        sum(13,23,33); // 3.传输多个参数
        sum(new int[]{10,20,30,40,50}); // 4.传输一个数组
    }

    public static void sum(int ... nums){
        System.out.println("元素个数:" + nums.length);
        System.out.println("元素内容:" + Arrays.toString(nums));
        System.out.println("-----------------");
    }
}

Operation results:

元素个数:0
元素内容:[]
-----------------
元素个数:1
元素内容:[12]
-----------------
元素个数:3
元素内容:[13, 23, 33]
-----------------
元素个数:5
元素内容:[10, 20, 30, 40, 50]
-----------------