关于java的可变参数

关于java的可变参数

在前面的文章中,我们了解了方法的定义,方法的引用,方法的重载等知识,这篇文章中主要学习一下方法中的可变参数

我们在学习可变参数之前,先来回顾一下方法,就拿加法为例子。

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
    
进程结束......

你可能感兴趣的:(java,开发语言)