Java新特性----方法的可变参数

一、可变参数的引入                                                                                                                                 点击此处返回总目录

二、可变参数的使用

三、可变参数的注意事项

 

 

方法的可变参数

方法的可变参数是jdk1.5的新特性。可变参数对后面的开发很有帮助。

 

一、可变参数的引入

首先看下面的例子:定义一个方法,求两个数的和。这很容易就能实现。【例1】

例1

package cn.itcast.demo13;

public class Test {
    public static void main(String[] args) {
        int result = add(3,5);
        System.out.println(result);
    }
    
    public static int add(int a,int b){
        return a+b;
    }
}

但是要求也不是固定的,一成不变的。以后又有新的需求,希望求三个数的和。这样还需要写一个三个参数的函数,这样又需要写一个三个参数的函数。但是后来又有需求,要求4个数的和,...,100个数的和,方法无限的定义下去也不行。。。因此JDK想了个办法,把参数变成可变参数。

 

二、可变参数的使用

可变参数的前提:方法参数的数据类型确定,参数的个数任意。【例1】

语法:数据类型...变量名    //必须是三个点。

方法的可变参数的本质是一个数组。【例2】

 

例1:调用一个带有可变参数的方法时,传递的参数的个数任意。

package cn.itcast.demo14;

public class Test {
    public static void main(String[] args) {
        fun();
        fun(2,3);
        fun(4,5,6,7,2,3);                    //调用一个带有可变参数的方法时,传递的参数可以是任意个(0,1,2,...)
        
    }


    public static int fun(int...a){       //带可变参数的方法
        return 1;
    }
}

例2:可变参数的本质是一个数组。

package cn.itcast.demo14;

public class Test {
    public static void main(String[] args) {
        fun();                          //0
        fun(2,3);                     //2
        fun(4,5,6,7,2,3);         //6
        
    }
    public static void fun(int...a){           //a是一个int数组,存放的是参数。
        System.out.println(a.length);       //可变参数的本质是数组。返回的是数组的长度,也就是参数的个数。
    }
}

例3:可变参数的使用:求任意个数的和。

package cn.itcast.demo13;

public class Test {
    public static void main(String[] args) {
        //调用一个带有可变参数的方法时,传递的参数可以是任意个(0,1,2,...)
        System.out.println(fun());                                  //0
        System.out.println(fun(3));                                 //3
        System.out.println(fun(3,5));                               //8
        System.out.println(fun(3,12,2,44,3,5,6,6,7,4,323,9,3,6,3)); //436
        
    }
    
    public static int fun(int...a){   //这是一个带有可变参数的方法。
        int sum = 0;
        for(int i:a){
            sum +=i;
        }
        return sum;
    }
}

 

三、可变参数的注意事项

1.一个方法中,可变参数只能有一个。【例1】、【例2】

2.可变参数必须写在参数的最后一位。【例3】、【例4】、【例5】

 

例1:下列程序报错。

package cn.itcast.demo15;

public class Test {
    public static void main(String[] args) {
        fun(1,2,3,4,5,);        
    }
    
    public static void fun(int...a,int...b){                //有两个可变参,报错。输入的数不知道传给谁。
        System.out.println(a.length);          
    }    
}

例2:下列程序报错。

package cn.itcast.demo15;

public class Test {
    public static void main(String[] args) {
        fun("aa","bb",1,2,3,4,5);        
    }
    
    public static void fun(String...s,int...a){      //有两个可变参,报错。虽然看着很合理,但是就是不允许同一个方法有多个可变参。
        System.out.println(a.length);          
    }    
}

例3:可变参数在最后一位,正确。

package cn.itcast.demo15;

public class Test {
    public static void main(String[] args) {
        fun("a",1,2,3);        
    }
    
    public static void fun(String s,int...a){              //前面是String类型,后面是可变参。
        System.out.println(a.length);                       //3
    }    
}

例4:可变参数在前面,报错。下列程序报错。

package cn.itcast.demo15;

public class Test {
    public static void main(String[] args) {
        fun(1,2,3,"aaa");        
    }
    
    public static void fun(int...a,String s){              //前面是可变参,后面是String类型。报错。
        System.out.println(a.length);          
    }    
}

例5:可变参在最后,正确。

package cn.itcast.demo15;

public class Test {
    public static void main(String[] args) {
        fun(1,2,3,4,5);        
    }
    
    public static void fun(int a,int b,int...c){
        System.out.println(c.length);                 //3
    }    
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值