五、可变参数
JDK1.5开始,Java支持传递同类型的可变参数(也叫不定项参数)给一个方法。
在方法声明中,在指定参数类型后加一个省略号(…)
- 一个方法中只能指定一个可变参数;
- 它必须是方法的最后一个参数;
- 任何普通的参数必须在它之前声明。
package com.song.method;
public class Demo04 {
public static void main(String[] args) {
Demo04 demo = new Demo04();
demo.test(1, 2, 3, 4);
}
public void test(int... i) {
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
}
}
package com.song.method;
public class Demo04 {
public static void main(String[] args) {
Demo04 demo = new Demo04();
demo.test(1.0, 2, 3, 4, 6);
}
public void test(double x, int... i) {
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
}
}
package com.song.method;
public class Demo05 {
public static void main(String[] args) {
//调用可变参数的方法
printMax();
printMax(12, 43, 5, 7, 8);
printMax(new double[]{1, 2, 3, 4});//double类型的数组,可变参数的本质就是数组
}
public static void printMax(double... numbers) {
if (numbers.length == 0) {
System.out.println("No argument passed!");
return;
}
double result = numbers[0];
//求最大值
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > result)
result = numbers[i];
}
System.out.println("The max value is:" + result);
}
}