在前面的文章中,我们了解了方法的定义,方法的引用,方法的重载等知识,这篇文章中主要学习一下方法中的可变参数
我们在学习可变参数之前,先来回顾一下方法,就拿加法为例子。
public class Demo
{
public static void main(String[] args)
{
int sum=add(2,3);
System.out.println()
}
//加法
public static int add(int num1,int num2)
{
return=num1+num2;
}
}
这里输出的结果是,这个方法是两个参数相加。
5
进程结束......
如果我们要三个数相加,就要再重载一个方法,用来匹配三个参数的时候,如果4个参数的时候,就要写4个,就很麻烦。
public class Demo
{
public static void main(String[] args)
{
int sum=add(2,3);
System.out.println()
}
//加法
public static int add(int num1,int num2)
{
return=num1+num2;
}
//三个数相加
public static int add(int num1,int num2,int num3)
{
return=num1+num2+num3;
}
//四个数相加
public static int add(int num1,int num2,int num3,int num4)
{
....
}
}
所以,我们可以用可变参数来定义方法!
可变参数,又叫做不定项参数。
在定义一个方法的时候,在指定参数类型后边加一个省略号… ,即可代表是可变参数,就是可以变化数量。
public class Demo
{
public static void main(String[] args)
{
Demo demo =new Demo();
demo.add();
}
//可变参数
public void add(int...num1)
{
System.out.println(num1);
}
}
1、我们在这里调用不用static静态修饰符了,了解一下创建对象式调用。
创建对象调用方法,就是有点像我们之前学习过的Scanner调用,因为我们刚刚定义的方法包含于这个类的里面,所以我们创建一个这个类的对象,也就是Demo这个类,Demo 对象名 = new Demo(); 这样我们就可以通过对象点 的方式,来调用这个方法。
2、可变参数,必须是在方法中的最后一个参数,任何普通参数必须在它之前声明。
public class Demo
{
public static void main(String[] args)
{
Demo demo =new Demo();
demo.add();
}
//可变参数
public void add(int num0,int...num1)//可变参数在后,普通参数在前
{
System.out.println(num1);
}
}
我们可以执行一下代码,可以看到我们看不懂的东西
[I@75b84c92
这个结果就是把对象输出出来了,我们这时候,要把它的值取出来,可以通过下标取出。
public class Demo
{
public static void main(String[] args)
{
Demo demo =new Demo();
demo.add(1,2);
}
//可变参数
public void add(int...num1)
{
System.out.println(num1[0]);
System.out.println(num1[1]);
}
}
这样我们再执行一下,输出的结果就是
1
2
进程结束......
可变参数的本质就是数组,等我们了解到数组的时候,会结合一起再次向大家说明。
我们来定义一个方法,输出最大值
public class Demo
{
public static void main(String[] args)
{
printMax(1,2,3,4.5,88,99);
printMax(25,35,48);
println(new double[]{1,2,3})
}
//输出最大值方法
public static void printMax(double...numbers)
{
if(num.length==0)
{
System.out.println("Dont pass");
return;
}
double result=numbers[0];
for(int i=1;i<numbers.length;i++)
{
if(numbers[i]>result)
{
result=numbers[i];
}
}
System.out.println("最大值是:"+result)
}
}
我们先不用理解代码里面数组的含义,主要是给看一下可变参数的用途!我们执行上述的代码,就会得到以下结果。
最大值是:99.0
最大值是:48.0
最大值是:3.0
进程结束......