当前位置: 首页 > news >正文

知识改变命运: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;}
http://www.lryc.cn/news/419821.html

相关文章:

  • Spring及相关框架的重要的问题
  • Linux Vim教程
  • 【学习笔记】多进程信号量控制
  • Redis与Memorycache的区别
  • docker和Helm Chart的基本命令和操作
  • Node中的CSRF攻击和防御
  • CSS 多按钮根据半圆弧度排列
  • 【Linux】网络编程套接字Scoket:UDP网络编程
  • 基于模糊PID控制器的puma560机器人控制系统的simulink建模与仿真
  • C语言文件操作超详解
  • 表字段显示tip
  • 十二、享元模式
  • 黑马Java零基础视频教程精华部分_18_Arrays各种方法
  • RAG私域问答场景超级详细方案(第一期方案)[1]:工业级别构建私域问答(知识处理、知识召回排序、搜索问答模块)
  • 【AI在医疗领域的应用】AI在疾病诊断、个性化治疗等领域的应用
  • SpEL结合AOP示例
  • 【Linux:环境变量】
  • 8月9日笔记
  • API 签名认证:AK(Access Key 访问密钥)和 SK(Secret Key 私密密钥)
  • Redis 单机和集群环境部署教程
  • 华为hcip-big data 学习笔记《一》大数据应用开发总指导
  • 用户画像架构图
  • 37.x86游戏实战-XXX遍历怪物数组
  • go语言中map为什么不会自动初始化?
  • 大数据面试SQL(一):合并日期重叠的活动
  • stm32应用、项目、调试
  • WEB渗透-未授权访问篇
  • x86_64、AArch64、ARM32、LoongArch64、RISC-V
  • git push上不去的问题Iremote reiectedl——文件过大的问题
  • Qt Creator卡顿