• 知识改变命运:Java 语言 【可变参数】


    可变参数

    概念:Java允许一个类中多个同名同功能但是参数不同的方法,封装为一个方法。

    基本语法:
    访问修饰符 返回值 方法名 (数据类型...参数名) {
    ......
    }
    

    案例:写一个类名DyMethod 方法名sum 计算两个整数和,三个整数和,四个整数和。

    public class DyMethod {
        public static void main(String[] args) {
            DyMethod s1=new DyMethod();
            s1.sum(1,2);
            s1.sum(1,2,3);
            s1.sum(1,2,3,4);
        }
        public int sum(int a,int b) {
            return  a+b;
        }
         public int sum(int a,int b,int c) {
            return  a+b+c;
        }
         public int sum(int a,int b,int c,int d) {
            return  a+b+c+d;
        }
    
    }
    

    我们上面代码可以使用重载的方法来实现,但是这样的代码特别无聊,他们完成的功能都是大同小异,如果我们要求5个,6个,甚至更多呢,接下来我们用可变参数优化下。

    public class DyMethod {
        public static void main(String[] args) {
            DyMethod s1 = new DyMethod();
            s1.sum(1, 2);
            s1.sum(1, 2, 3);
            s1.sum(1, 2, 3, 4);
        }
    
        public int sum(int... x) {
            int sum=0;
            for (int i = 0; i < x.length; i++) {
                sum+=x[i];
            }
            return sum;
        }
    }
    //int...表示可接受可变参数,类型是int,可接受(0到n个int值)
    //可变参数x可以当作数组来使用,即x当作数组
    

    这样我们就利用参编参数简化了代码

    可变参数注意到事项和细节

    1.可变参数的实参可以是0到多个
    2.可变参数可以传参数组

    		int [] arr={1,2,3,4,5};
            System.out.println(s1.sum(arr));
     public int sum(int... x) {
            int sum=0;
            for (int i = 0; i < x.length; i++) {
                sum+=x[i];
            }
            return sum;
        }
    

    3.可变参数实质是数组
    4.可变参数可以跟其他普通类型参数一起出现,但是可变参数必须在参数最后

    public int sum(int a,Stuent... x)
    

    5.一个方法里面只能有一个可变参数

    public int sum(int...a,Stuent... x)//报错
    

    练习:有三个方法,返回姓名+2门成绩和,返回姓名+3门成绩和,返回姓名+4门成绩和,封装成一个方法。

    public String sum(String name,int...score) {
            int sum=0;
            for (int i = 0; i < score.length; i++) {
                sum+=score[i];
            }
            return "姓名"+name+"成绩"+sum;
        }
    
  • 相关阅读:
    Linux死锁
    虚拟化技术 - I/O虚拟化 [二]
    MongoDB 开源“可查询加密”系统 Queryable Encryption
    Go 的三种指针
    模拟面试
    电商数仓项目中各层的表
    数据库复制:Spectral Core Full Convert Ultimate 2022
    vue-cli项目打包体积太大,服务器网速也拉胯(100kb/s),客户打开网站需要等十几秒!!! 尝试cdn优化方案
    Win10系统无法登录Xbox live的四种解决方法
    rust入门
  • 原文地址:https://blog.csdn.net/2402_84062064/article/details/141071506