Java入门:06.Java中的方法--进阶02.03

news2024/11/14 18:11:07

2 可变参数

方法调用时, 传递的实参数量,是由被调用方法的参数列表数列决定的。

一般来讲,传递的实参数量必须与形参变量数量相同,但是也有一种特殊的参数,允许调用时传递的实参数量是可变,这种参数就称为:可变参数

语法

 public static void t1(int num1 , int num2){}
 ​
 public static void t2(int...nums){}
 ​
 main(){
     t1(10,30) ;
     t1(10) ;//错
     t1(10,20,30);//错
     
     t2();  //正确
     t2(10);//正确
     t2(10,20,30);//正确
 }

特点

  • 可变参数的本质是一个数组。

  • 接收者在使用可变参数时,无论传递多少个数据,都以数组的语法进行操作。

    传递了多少个数据,数组的长度就是多少。

  • 调用者在传递参数的时候,可以传递任意数量的参数,0 , 1, n,还可以传递数组

  • 方法的参数列表中,只能定义一个可变参数。

  • 方法的参数列表中一旦定义了可变参数,只能是最后一个参数

3 方法重载

在一个类中,多个方法的名称相同,参数列表不同,执行不同的操作,就称这多个方法为重载方法。

  • 参数列表不同体现在 参数的个数和类型不同

  • 方法重载与访问权限,修饰符,返回类型,异常声明无关。

调用时,会自动的根据方法名和参数列表却分调用的到底哪一个方法。

 public static int sum(int num1,int num2){}
 public static int sum(int num1 , int num2 , int num3){}
 public static double sum(double num1 , double num2){}
 ​
 public static double sum(int num1, int num2){}  //错误

方法重载是在编译时就确定了要执行的方法。

特殊情况下的重载

  • 实参的类型和形参的类型不直接相同时(但存在可转换)

    先根据相同的参数类型匹配一些方法

    然后再将类型不同的参数进行类型转换,匹配与之参数类型最近的方法。

  • 再有可变参数的情况下, 有限匹配类型和数量相同的方法。

  • 如果两个重载方法都含有相同类型的可变参数。 调用为可变参数必须传递数组

 public class Test4{
 ​
     public static void t1(int i , float j){
         System.out.println("11111111");
     }
     public static void t1(int i , double j){
         System.out.println("22222222");
     }
     public static void t1(double i , double j){
         System.out.println("33333333");
     }
     public static void t2(int i , int j){
         System.out.println("44444444");
     }
     public static void t2(int i,int...nums){
         System.out.println("55555555");
     }
     public static void t2(int ...nums){
         System.out.println("66666666");
     }
 ​
     public static void main(String[] args){
         t1(10,20); //111111
         t2(10,20) ;//444444
         t2(10,20,30) ;//报错,无法分别调用的是哪一个可变参数的方法
         t2(10,new int[]{20,30}); // 555555
     }
 }

                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2069799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《黑神话·悟空》游戏开发教程来了,全部开源。。。

黑神话悟空游戏,官网说明使用UE5引擎开发. 这篇文章发一个UE5游戏开发的系统教程。 1 开发悟空游戏的UE5 UE5,即 Unreal Engine 5,是由 Epic Games 开发的一款高度先进的游戏引擎。 UE5 是 Unreal Engine 系列的最新版本,它提供…

Qt第十八章 XML和Json格式解析

文章目录 JSON格式解析Json生成案例 XML简介与HTML的区别格式XML解析流的方式DOM XML生成 JSON与XML的区别比较 JSON 格式 JSON是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个字面名 六个构造字符 开始和结束数组:[ ]开始和结束对象&#x…

应用商场的搭建

前言: 使用mysql做主从设置,redis数据库做热门访问数据库。mycat读写分离,zookeeperkafka做数据收集,使用三台虚拟机 关掉防火墙和selinux,做时间同步 192.168.121.11 node1 mycat.example.com 192.168.121.21 node2 …

提高LabVIEW电机控制速度

在LabVIEW中执行绝对位移命令时,其运行时间主要与以下电机参数有关: 电机加速度和减速度: 加速度和减速度参数决定了电机从静止到达到目标速度,以及从高速到停止的时间。这些参数直接影响电机响应的迅速程度。如果加速度和减速度设…

如何使用ssm实现基于bs模式的医院在线挂号预约系统的设计与实现

TOC ssm072基于bs模式的医院在线挂号预约系统的设计与实现jsp 第1章 绪论 1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人…

B/S架构和C/S架构的区别

B/S架构、C/S架构区别 1. B/S架构 1.1 什么是B/S架构 B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。B/S架构的系统无须特别安装,只需要…

实战OpenCV之绘制图形

基础入门 OpenCV除了用于图像显示之外,还提供了一系列接口和工具,以帮助开发者在图像上绘制各种图形。这里的图形包括:直线、矩形、圆形、椭圆、多边形等。另外,OpenCV还支持在图像上添加文字,对多张图像进行叠加操作。…

NACOS 2.4.1如何开启账号密码登录功能

Nacos Server 2.4.0+已正式发布取消管理员用户 nacos 的默认密码支持初始化指定密码。 本章教程,主要介绍如何给nacos加上鉴权,支持通过用户名和密码的方式进行访问nacos页面。 NACOS 2.4.1版本下载地址:https://github.com/alibaba/nacos/releases/tag/2.4.1 1、开启认证功…

驱动:insmod

一、驱动模块的加载 1. 静态 编译进内核2. 动态 编译成模块 如下: 解决方法 结果 led电灯例子 创建一个led.c 修改Makefile、Kconfigmake modulescp drivers/char/led.ko /home/linux/nfs/rootfs开发板 insmod led.ko去 /home/linux/nfs/rootfs 上 写程序.carm-l…

每日掌握一个科研绘图|区域图·24-08-23

小罗碎碎念 为了方便大家获取对应的代码和源数据,从本期推文开始,我将把对应的文件上传至Github仓库,感兴趣的同学自行获取。 仓库地址 https://github.com/Lxltxpku/Share 一、区域图 区域图是一种数据可视化工具,它通过在坐标…

嵌入式人工智能ESP32(7-OLED显示中英文)

1、OLED显示英文 我们之前通过树莓派开发板做过OLED显示,这里就不再赘述OLED显示屏了。直接上接线图与代码。 (1)Adafruit Adafruit是一家成立于2005年的私营企业,主要业务是设计和制造开源电子硬件。Adafruit在美国设计和制造其…

全栈杂谈第一期:什么是计算机中的并发

什么是计算机中的并发 计算机中的“并发”是一个听起来很复杂的词汇,但我们可以把它简单理解为“同时做很多事情”。想象一下你正在做晚饭:你可以在等水烧开的时候切菜,还可以在等待炖汤时洗碗。尽管你只有一双手,但通过合理安排…

芋道cloud v2.2.0发布,支持模块选配,丢弃简易版

大家知道,芋道cloud拥有商城、CRM、ERP、微信相关等模块,很显然我们在日常开发中不可能一个项目同时拥有这么多模块。但是从gitee上获取代码的时候,只提供了简易版和完整版。简易版本只有最基础的功能,如果想要微信相关的模块&…

浅谈Llama3.1,从结构、训练过程、影响到数据合成

Llama3.1系列模型的开源,真让大模型格局大震,指标上堪比最好的闭源模型比如GPT 4o和Claude3.5,让开源追赶闭源成为现实。 这里给大家分享一篇俊林兄(知乎张俊林)的一篇解读,主要对LLaMA3.1的模型结构、训练…

RM双轴云台控制

RM机器人上最复杂的控制计构就是双轴云台了,赛场上的情况对双轴云台的控制稳定度与响应灵敏度双方面都提出了很高的要求,云台控制的好坏在一定程度上就能够代表一支队伍的实力。 双轴云台采用的控制算法依然是PID控制算法,关于PID控制算法的…

自动操作一键数据恢复/电子取证

对磁盘模拟扫描修复丢失数据的实验。 先挂载题目磁盘VHD。 Windows系统中打开磁盘管理,-操作,-附加VHD 可以看到已经加载出题目磁盘,接下来打开RStudio数据恢复软件,对其进行扫描。 操作找回丢失/被删除的数据 可以看到已经加载出…

Java入门:06.Java中的方法--进阶04

4方法递归 简而言之就是方法的自身调用。 也可以是方法组自身的调用 递归类似循环,可以实现功能的反复执行。在某些(算法)环境下,比使用循环更轻松。 递归的本质就是方法的不同调用,就会不同的产生栈帧压栈,栈空间有限&#xff…

一个可以搜索页面内超链接的HTML页面

页面效果如上&#xff0c;含有标题&#xff0c;搜索框和一些超链接&#xff0c;在搜索框输入一些文字可以在下方显示含有这些文字的超链接。这里的搜索不仅可以中文&#xff0c;还可以是英文&#xff0c;数字 HTML代码如下 <!DOCTYPE html> <html lang"en&qu…

笔记小结:《利用pytthon进行数据分析》之使用pandas和seaborn绘图

matplotlib实际上是一种比较低级的工具。要绘制一张图表&#xff0c;你组装一些基本组件就行&#xff1a;数据展示&#xff08;即图表类型&#xff1a;线型图、柱状图、盒形图、散布图、等值线图等&#xff09;、图例、标题、刻度标签以及其他注解型信息。 在pandas中&#xf…

polarctf靶场[CRYPTO]显而易见的密码、[CRYPTO]夏多的梦、[CRYPTO]再这么说话我揍你了、[CRYPTO]神秘组织M

[CRYPTO]显而易见的密码 考点&#xff1a;ntlm编码 打开文件&#xff0c;显示内容就是ntlm格式 ntlm解密 在线网站&#xff1a; https://www.cmd5.com/便可得到flag [CRYPTO]夏多的梦 根据题目提示可以猜测为夏多密码 考点&#xff1a;夏多密码 在线加密原理网站&#x…