package com.qianfeng.test;
public class Demo5 {
/*
* 可变参数:参数的个数是不固定的
*
* 作用:简化代码,方便操作
*/
public static void main(String[] args) {
int he1 = sum(2, 4, 1);
System.out.println(he1);
// 使用数组---址传递
int[] arr = { 3, 4, 5, 3, 1 };
int he2 = sum(arr);
System.out.println(he2);
// 可变参数实现求和
int[] arr1 = { 3, 4, 5, 3, 1 };
int he3 = sum1(arr1);
System.out.println(he3);
// 注意点:
// 1.给可变参数传值的实参可以直接是多个值
int he4 = sum(3, 4, 5);
// 2.当包括可变参数在内有多个参数的时候,可变参数必须放在最后
int he5 = sum2(3, 4, 5, 6);
System.out.println("he5=" + he5);// he5=3
// 3.当可变参数的方法与固定参数的方法是重载关系的调用顺序--固定参数的优先级高于可变参数的优先级
sum5(2, 4);
}
// 求三个数的和
public static int sum(int a, int b, int c) {
return a + b + c;
}
// 使用数组---址传递
public static int sum(int[] a) {
int he = 0;
for (int i : a) {
he += 1;
}
return he;
}
// 可变参数实现求和
// 构成:数据类型+...,可变参数可以直接看做数组 例如:int... 相当于 int[]
public static int sum1(int... a) {
int he = 0;
for (int i : a) {
he += 1;
}
return he;
}
//
public static int sum2(float b, int... a) {
System.out.println(b);// 3.0
int he = 0;
for (int i : a) {
he += 1;
}
return he;
}
// 说明:当可变参数的方法与固定参数的方法是重载关系的调用顺序--固定参数的优先级高于可变参数的优先级
public static int sum5(int a, int b) {
System.out.println("固定参数");
return a + b;
}
public static int sum5(int... a) {
System.out.println("可变参数");
int he = 0;
for (int i : a) {
he += 1;
}
return he;
}
}