public class VarArgsTest {
/*
public static int avg(int a, int b) {
return (a + b) / 2;
}
public static int avg(int a, int b, int c) {
return (a + b + c) / 3;
}
public static int avg(int a, int b, int c, int d) {
return (a + b + c + d) / 4;
}*/
/*
public static int avg(int[] nums) { // 不灵活
return 0;
}*/
public static int avg(int... nums) { // 可变参数 0~n个参数, 可变参数只能放在参数列表的最后
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
}
return sum / nums.length;
}
public static void test1(String book){
System.out.println("****与可变形参方法构成重载的test1方法****");
}
public static void test1(String ... books){
System.out.println("****形参长度可变的test1方法****");
}
public static void main(String... args) {
System.out.println(avg(10, 15));
//System.out.println(avg(new int[]{10, 15})); 编译器会自动翻译成这样
System.out.println(avg(10, 15, 30));
//System.out.println(avg(new int[]{10, 15, 30}));
System.out.println(avg(10, 15, 30, 50));
int[] arr = {3, 8, 9, 10};
System.out.println(avg(arr));
System.out.println(avg());
//System.out.println(avg(new int[]{}));
test1("abc"); // 优先匹配一个参数的精确匹配
String[][] arrarr = {{"aaa", "bbb", "ccc"},
{"111", "222"},
{"你", "他", "我"}};
}
}