讲解方法的可变参数
好处是是的参数列表更加的灵活
通常用于处理不清楚用户到底输入多少个参数的情况 。例如 - 计算器
可变参数,参数的数量可变!
注意:
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) - 方法签名:
* 包含方法名和参数列表
*/
}
方法签名?
包含方法名和参数列表