讲解方法的可变参数
好处是是的参数列表更加的灵活
通常用于处理不清楚用户到底输入多少个参数的情况 。例如 - 计算器
可变参数,参数的数量可变!
注意:
1.数据类型。。。代表可变参数,即可以传入任意个该类型的数据
2.可变参数不能放在前面,只能放在后面
3.可变参数的方法与数组的方法不能重载,因为可变参数就是一个数组
package Test19_Demo.Demo06;/*@create 2020--12--09--14:30*/import java.util.ArrayList;import java.util.Collection;import java.util.Collections;public class ArgsDemo {public static void main(String[] args) {//利用父类的接口创建对象Collection<String> c = new ArrayList<>();//添加数据 - 调用方法Collections.addAll(c, "黄药师", "段誉", "虚竹");//jvm会自动将多个参数封装成一个数组System.out.println(c);System.out.println("----------------------");//自定义一个方法 - 可以灵活的处理参数列表int sum = add(10, 20, 50, 88);System.out.println(sum);System.out.println("-----------------------");int[] arr = {10, 25, 4, 5, 32, 45, 484, 11, 54, 654};int add = add(arr);//表示可变的参数列表其实就是一个数组System.out.println(add);}//封装一个可变参数的方法public static int add(int... a) {//用来记录所有数字的和int sum = 0;//遍历参数列表的数组for (int i = 0; i <a.length ; i++) {int j = a[i];System.out.println(j);//没遇到一个数字就累加sum += j;}return sum;}/**** 可变参数其实就是一个数组* 这里int[]其实和int... 是一样的,所以jvm判定为两个方法重名,并不是重载* public static int add(int[] arr){return 0;* }** 什么是方法签名?* main(String[] args) - 方法签名:* 包含方法名和参数列表*/}
方法签名?
包含方法名和参数列表
