可变参数与数组

可变参数
Java运行将同一类中多个同名同功能但参数个数不同的方法,封装成应该方法
可变参数的实参可以是0个或任意多个
可变参数的实参可以是数组
可变参数的本质就是数组
 public int sum(int n1,int n2){
        return n1 + n2;
    }
    public int sum(int n1,int n2,int n3){
        return n1 + n2 + n3;
    }
    public int sum(int n1,int n2,int n3,int n4){
        return n1 + n2 + n3 + n4;
    }
    public int sum(int n1,int n2,int n3,int n4, int n5){
        return n1 + n2 + n3 + n4 + n5;
    }

 

上面的三个方法名称相同,功能相同,参数个数不同->使用可变参数优化
1)int...表示接受的是可变参数,类型是int,即可以接收多个int(0-多)
2)使用可变数组是,可以当作数组来使用,即nums可以当作数组
3)遍历nums求和即可

以上代码可以简写成以下代码:

 public int sum(int...nums){
        int toll=0;
        for (int i = 0; i < nums.length; i++) {
            toll+=nums[i];
        }
        System.out.println("数组长度为:"+nums.length);
        return toll;
    }

 

完整代码附上:


import java.util.Scanner;

public class demo2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        calculator my =new calculator();
        System.out.println("请依次输入你要计算的整数 个数: 及多个整数");
        int len = in.nextInt();
        int[] num = new int[len];
//        System.out.println(my.sum(3,4,5,5));
        for (int i = 0; i < len; i++) {
           if(in.hasNext()){
               num[i] = in.nextInt();
           }else{
               break;
           }
        }
        System.out.println("总和为:"+my.sum(num));
        in.close();
//        System.out.println(my.sum("zhang",1,2,3,45,5));
    }
}
class calculator{
    /*!!!可变参数!!!
    Java运行将同一类中多个同名同功能但参数个数不同的方法,封装成应该方法
    可变参数的实参可以是0个或任意多个
    可变参数的实参可以是数组
    可变参数的本质就是数组
     */
//    public int sum(int n1,int n2){
//        return n1 + n2;
//    }
//    public int sum(int n1,int n2,int n3){
//        return n1 + n2 + n3;
//    }
//    public int sum(int n1,int n2,int n3,int n4){
//        return n1 + n2 + n3 + n4;
//    }
//    public int sum(int n1,int n2,int n3,int n4, int n5){
//        return n1 + n2 + n3 + n4 + n5;
//    }
    /*
    上面的三个方法名称相同,功能相同,参数个数不同->使用可变参数优化
    1)int...表示接受的是可变参数,类型是int,即可以接收多个int(0-多)
    2)使用可变数组是,可以当作数组来使用,即nums可以当作数组
    3)遍历nums求和即可
     */
    public int sum(int...nums){
        int toll=0;
        for (int i = 0; i < nums.length; i++) {
            toll+=nums[i];
        }
        System.out.println("数组长度为:"+nums.length);
        return toll;
    }
    //可变参数可以和普通类型的参数放在形参列表,但必须保证可变参数在最后
    public int sum(String name, int...nums){
        int toll=0;
        for (int i = 0; i < nums.length; i++) {
            toll+=nums[i];
        }
        System.out.println("数组长度为:"+nums.length);
        return toll;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值