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

可变参数

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

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

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

java 复制代码
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个,甚至更多呢,接下来我们用可变参数优化下。

java 复制代码
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.可变参数可以传参数组

java 复制代码
		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.可变参数可以跟其他普通类型参数一起出现,但是可变参数必须在参数最后

java 复制代码
public int sum(int a,Stuent... x)

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

java 复制代码
public int sum(int...a,Stuent... x)//报错

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

java 复制代码
public String sum(String name,int...score) {
        int sum=0;
        for (int i = 0; i < score.length; i++) {
            sum+=score[i];
        }
        return "姓名"+name+"成绩"+sum;
    }
相关推荐
打工仔折腾 AI6 分钟前
普通摄像头接入AI识别:绿联NAS部署Frigate监控实战
人工智能·后端·python·性能优化·ai agent 实战
菜鸟~noob2337 分钟前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
kuuailetianzi13 分钟前
第3篇:《变量、数据类型与基本运算》
python
周GZ16 分钟前
简单讲解线程池的4种拒绝策略
java
白远山30 分钟前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
暮雨哀尘32 分钟前
JAVA基础练习(四):SpringBoot 实现简易登录功能
java·spring boot·eclipse·maven
正经教主1 小时前
【FDE系列】阶段2:Day 28:FastAPI 入门 — 把你的函数变成 API 服务
人工智能·python·fde
李航19831 小时前
用 DeepDraw 几何引擎开发建筑设计软件(十):推挤工具
python·3d
光依旧2 小时前
MCP实战手记系列(二):跑通第一个 MCP Server(文末附github源码链接)
java·spring ai·mcp·ai 开发·源码实战