Java可变参数

可变参数是什么?

  • 可变参数的定义:方法中接收的参数不是固定的,而是根据需要传递。

怎么理解可变参数?

先给出图示意:

       

道具定义:

吸管:可变参数

球:带编号的珍珠

情景定义:

现有一杯珍珠奶茶,作者喝奶茶一般喜欢不带珍珠的奶茶,可偏偏就有这么一杯带珍珠的奶茶。

作者的做法是把吸管提得老高,并咬住吸管,避免珍珠误入。

这个时候,意外出现了!我突然吸入一吸溜珍珠。

  public static void main(String[] args) {
        Me me = new Me();

        me.stomache(1, 2, 3, 4);
    })

因为我有洁癖,我需要计算我到底吞了几颗珍珠, 我太敏感了,竟然还不知不觉给它们编号!

public int stomache(int ... naiCha){
        int sum = 0;
        for ( int i = 0; i < naiCha.length; i++){
            System.out.printf("我竟已吸入了第%d颗珍珠!\n", naiCha[i]);
        }
        return sum;
}

随着嘟嘟嘟嘟四声,四颗珍珠落胃。但我突然在思考一件事情,我的食道究竟是一次性吸溜了四颗珍珠还是嘟噜嘟噜地一颗颗吸溜?这个时候我准备DeBug一下。

 毫无疑问!我一次性吸溜了四颗珍珠。至此,第一个情景告一段落,让我们来总结一下。

  1. 可变参数:形象比喻成吸管,不管你咋吸,只要是吸到胃里的,都算一次性吸!(就是一个数组)
  2. 现在我要给出另一个情景:我吸溜了珍珠,就代表我对珍珠没有洁癖了吗?

 上代码走胃!

没错,食道想要顺畅地吸溜一组珍珠,就需要先喝点奶茶润润食道,小时候大家吃胶囊药不会有人一颗一颗吃吧?

总结:

至此,两种情景已经全部总结完了,这是对可变参数在传参的注意点。

  1. 可变传参应用在方法参数上,在方法体内部定义会报错哦!(不信大家去敲代码)
  2. 可变参数传参一定要在最后,就像我喝奶茶就算不喜欢吃珍珠也会在最后吃几颗回回本钱。
  3. 可变参数不一定要接受一个数组,可以是一大串同类型的数据呢!(但,是一次性吸溜进胃!)

最后给出完整Demo 

public class Me {

//    public int stomache(int ... naiCha, String milk){
//        int sum = 0;
//        for ( int i = 0; i < naiCha.length; i++){
//            System.out.printf("我竟已吸入了第%d颗珍珠!\n", naiCha[i]);
//        }
//        return sum;
//    }

    public int stomache1(String milk,int ... naiCha){
        int sum = 0;
        System.out.println(milk+"已经入胃啦!开工!");
        for ( int i = 0; i < naiCha.length; i++){
            System.out.printf("我竟已吸入了第%d颗珍珠!\n", naiCha[i]);
        }
        return sum;
    }
    public static void main(String[] args) {
        Me me = new Me();

//        me.stomache(xi, milk);
        
        int[] xi = {1, 2, 3, 4};
        String milk = "饮到阿萨姆啦~";
        me.stomache1(milk, 1, 2, 3, 4);
        me.stomache1(milk, xi);
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天溜溜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值