Java随笔-可变个数形参

Java随笔-可变个数形参

可变个数形参使用规范和注意事项

**1、使用格式:methodName(数据类型…变量名) **

  public static void show(String...str){
        for (int i=0;i<str.length;i++){
            System.out.println(str[i]);
        }
    }

2、当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,。。。

 	public static void main(String[] args) {
        show("A","B","C");

    }
     //重载
    public static void show(String...str){
        for (int i=0;i<str.length;i++){
            System.out.println(str[i]);
        }
    }

展示:

在这里插入图片描述

注意:

从上面的代码和显示的结果可以看出,可变形参实际上是一个数组,我们再调用的时候就把它作为数组调用即可。

3、 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载

   //方法一
	public static void show(String str){
        System.out.println(str);
    }
    //方法二
    public static void show(String...str){
        for (int i=0;i<str.length;i++){
            System.out.println(str[i]);
        }
    }

    public static void main(String[] args) {
        show("test");
        show("A","B","C");

    }

在执行上述的main方法之后得到的结果如下:
在这里插入图片描述

在main方法中show(“test”)方法,执行的是方法一,show(“A”,“B”,“C”)执行的是方法二,只有当方法一不存在的时候,show(test)才会执行方法二可变形参的方法,这里面存在一个优先级的问题。

4、可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。

在这里插入图片描述

如上可变形参的方法和使用数组的方法不构成重载,两者不能够共存,是因为在Java5.0之前没有可变形参这个概念,那时就是使用数组来传入多个参数,所以可变形参实际上就是数组,在访问时也和访问数组中的元素一样。

5、可变个数形参在方法的形参中,必须声明在末尾

 public static void show(int i,String...str){
        System.out.println("Pre data:"+i);
        System.out.println("Post data:"+str);
    }

6、可变个数形参在方法的形参中,最多只能声明一个可变形参。

总结:

/**
 * 可变个数参数的问题
 * 1、jdk5之后加入的新特性
 * 2、具体使用及注意方法
 *      2、1 格式:methodName(数据类型...变量名)
 *      2、2 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,。。。
 *      2、3 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
 *      2、4 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。
 *      2、5 可变个数形参在方法的形参中,必须声明在末尾
 *      2、6 可变个数形参在方法的形参中,最多只能声明一个可变形参。
 */
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值