可变参数
import java.util.Arrays;
import java.util.List;
/*
根据我们的案例发现,方法名一样,参数列表中的数据类型一样,只是个数不一样
这时候,每增加一个参数,方法就要新写一个,非常麻烦。
那怎么办呢?
java替我们考虑到了这一点,提供了一个技术给我们
叫做:可变参数
概述:定义方法的时候,参数不确定的时候使用
格式:
修饰符 返回值类型 方法名(数据类型... 变量名){}
注意:
这里的变量其实是一个数组
如果一个方法有可变参数,并且有多个参数,那么可变参数肯定是最后一个
Arrays工具类中的一个方法用到了可变参数
public static <T> List<T> asList(T... a)
*/
public class ArgsDemo {
public static void main(String[] args) {
//求两个数之和
int a = 10;
int b = 20;
sum(a, b);
//求三个数之和
int c = 30;
sum(a, b, c);
//求四个数之和
int d = 40;
sum(a, b, c, d);
//将来传入参数的时候会把后面输入的值封装成一个int类型的数组,数组名是ints
sum(312,123,1,312,13,13,13,13,13,1,34,5,4,3,131,3);
//Arrays工具类中的一个方法用到了可变参数
List<String> strings = Arrays.asList("hello", "world", "java", "bigdata");
for(String s : strings){
System.out.println(s);
}
sum("你好",3123,21,2,1,211);
}
//使用可变参数的形式定义加法的方法
public static void sum(int... ints){
int sum = 0;
//直接输出ints,结果是数组的地址值
//System.out.println(ints);
for(int i=0;i<ints.length;i++){
sum = sum + ints[i];
}
System.out.println(sum);
}
//当方法定义的时候既有固定值,也有可变参数的数的时候,将可变参数的定义放在最后一个。
public static void sum(String s,int... ints){
System.out.println(s);
int sum = 0;
for(int i=0;i<ints.length;i++){
sum = sum + ints[i];
}
System.out.println(sum);
}
//静态的只能访问静态的
// public static void sum(int a, int b) {
// System.out.println(a + b);
// }
//
// public static void sum(int a, int b, int c) {
// System.out.println(a + b + c);
// }
//
// public static void sum(int a, int b, int c, int d) {
// System.out.println(a + b + c + d);
// }
}