java的参数传递机制概述,方法重载概述,以及相关案例

前言:

学了Java的传递机制,稍微记录一下。循循渐进,daydayup!

 java的参数传递机制概述

1,java的参数传递机制是什么?

java的参数传递机制是一种值传递机制。

2,值传递是什么?

值传递指的是,传输实参给方法形参的时候,实参存储的值的副本。

3,实参/形参是什么?

实参指的是在方法内部定义的变量。形参指的是方法定义的变量。如下图:

基本类型和引用类型的参数在传递时有什么不同?

1,基本类型的参数传递

基本类型的参数传递是一种值传递,参数储存的是数据值

例:如图代码

  public static void main(String[] args) {int q =10;//laal(q);System.out.println("main"+q);}public static void laal(int q){System.out.println("一次"+ q);q = 20;System.out.println("二次"+ q);}

结果如下:即使在方法里q赋值成了20,在main里q依旧输出10;

2,引用类型的参数传递

 引用类型的参数传递同样是一种值传递,参数储存的是地址值

 例:如图代码

 public static void main(String[] args) {int [] lala = {1,2,3,4,5};la( lala);System.out.println("main"+lala [1]);}public static void la(int [] lala){System.out.println("第一次"+lala[1]);lala [1] = 20;System.out.println("第二次"+lala[1]);}

结果如下:当方法中数组里的数改变后,main中也随之改变(因为参数记录的是地址值,并不影响引用数值的改变)

 方法重载

1,什么是方法重载?

一个类中,多个方法的名称相同,但他们的形参列表不同

2,方法重载需要注意什么?

一个类中,只要一些方法的名称相同,形参列表不同(形参的个数,类型,顺序不同),那就是重载了

3,重载的应用场合是什么?

一类业务需要多种解决方案时(此时用方法重载特别专业) 

例:如图代码

 public static void lala(){}public static int lala(int a){ return a;}public static int lala(int a,int b){return a +b ;}

 

综合案例

案例1,用方法,把数组{1,2,3,4,5}按照[1|2|3|4|5]格式输出

public class definedemo3 {public static void main(String[] args) {int [] lol = {1,2,3,4,5};lala(lol);}public static void lala(int [] lol){if(lol == null){System.out.println("null");return;//以防是null}System.out.print("[");//添加[for (int i = 0; i < lol.length; i++) {//使数组循环输出System.out.print(i == lol.length - 1 ? lol[i]:lol[i]+"|");}//判断i是否等于数组最大长度,如果是则不输出|System.out.println("]");//加上]}
}

实验结果:

 

案例2:两个数组对比,如果一致,输出true

实验思路:判断两个是否null;再判断两个长度是否一样;再判断两个数是否相同;

  public static void main(String[] args) {int[] q1 = {1,2,3};int[] q2 = {1,2,3};System.out.println(lala(q1,q2));}public static boolean lala(int [] q1,int [] q2){if (q1 == null && q2 == null){return  true;}if (q1 == null || q2 ==null){return false;}if (q1.length != q2.length){return false;}for (int i = 0; i < q1.length; i++) {if (q1[i] != q2[i]){return  false;}}return true;}

实验结果:实验成功,一致输出true,不一致输出false

案例3 :设计两个模式,模式1为发射导弹;模式2为向指定地区发射导弹

public class overloaddemo1 {public static void main(String[] args) {fire(1);fire("哈哈国",1);}public static void fire(int a){System.out.println(a);}public static void fire(String con,int a  ){System.out.println("向"+con+"发射"+ a+"枚导弹");}
}

实验结果:模式1为发射一枚导弹,模式2为向哈哈国发射1枚导弹

今日结束!

---------------------------------------------------------------------------------------------------------------------------------

最后

如果您看到了这篇文章,同时您也在学习java,希望您阅读这篇文章,希望与您一起讨论

基于黑马程序员的java学习笔记(持续更新)

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设备健康管理系统助力制造企业实现数字化转型

在当今快速变革的制造业环境中&#xff0c;数字化转型已成为制造企业保持竞争力和实现可持续发展的关键。在这个数字化转型的浪潮中&#xff0c;设备健康管理系统正发挥着重要的作用。设备健康管理系统通过实时监测、预测分析和智能诊断等功能&#xff0c;为制造企业提供了全面…

emacs:Searching for program: No such file or directory,sml;

首先&#xff0c;编辑一个现有的或新的 SML 文件&#xff08;如果没有其他方便的方法&#xff0c;可尝试C-x C-f test.smlC-x C-f test.sml 创建一个新文件&#xff09;。你会看到 Emacs 窗口底部的模式显示从 "基本"&#xff08;或其他任何模式&#xff09;变成了 S…

Docker九 | Swarm mode

目录 Swarm基本概念 节点 服务和任务 创建Swarm集群 创建管理节点 增加工作节点 查看集群 部署服务 新建服务 查看服务 服务伸缩 增加服务 减少服务 删除服务 Swarm基本概念 节点 节点分为管理节点(manager)和工作节点(worker) 管理节点 管理节点用于Swarm集群的…

Linux驱动学习—pinctl和gpio子系统

1、pinctl和gpio子系统&#xff08;一&#xff09; 1.1pinctrl 子系统主要工作内容 <1>获取设备树中 pin 信息&#xff0c;管理系统中所有的可以控制的 pin&#xff0c; 在系统初始化的时候&#xff0c; 枚举所有可以控制的 pin&#xff0c; 并标识这些 pin。 <2>…

nginx+keepalived实现七层负载

目录 一、部署nginx01、nginx02 二、keepalived配置&#xff08;抢占模式、master- backup模式&#xff09; 三、测试 四、非抢占模式&#xff08;backup-backup模式&#xff09; nginx01 11.0.1.31nginx0211.0.1.32虚拟IP&#xff08;VIP&#xff09;11.0.1.30 一、部署ngin…

SpringBoot+MyBatis+MySQL增删改查(一)(IDEA创建SpringBoot项目)

使用IDEA创建SpringBootMyBatisMySQL进行项目搭建 1.创建项目 文件 --> 新建 --> 项目 填写项目基本信息 项目名称、存放位置、项目语言、项目类型、JDK版本、打包 Web选项选择Spring Web SQL选项中勾选JDBC API、MyBatis Framework、MySQl Driver选项 至此一个空项目…

SpringBoot用JDK1.8的依赖设置pom.xml

pom.xml的修改主要是两个地方&#xff1a; 1.修改springframework的版本为2.5.0&#xff0c;版本太高可能和其他插件搭配有冲突&#xff1b; 2.Java的版本修改成8&#xff0c;也就是对应JDK1.8。

【编程语言】协程比较

一、比较五种编程语言&#xff08;Python、C、Go、C、Java&#xff09;的协程实现和特点。 Python Python从3.5版本开始通过async 和 await 关键字提供了原生协程支持&#xff0c;主要用于简化异步I/O操作。在Python中&#xff0c;协程是由事件循环&#xff08;event loop&am…

【Spring实战】14 Web表单校验

文章目录 1. 依赖2. 实体类3. 控制器4. 页面5. 启动6. 验证1&#xff09;访问页面2&#xff09;后台校验 7. 优点8. 代码详细总结 在 Web 应用中&#xff0c;表单是用户与后端交互的主要界面之一。为了确保数据的有效性和一致性&#xff0c;我们经常需要对提交的表单数据进行验…

学生管理系统(vue + springboot)

学生管理系统&#xff08;vuespringboot&#xff09;资源-CSDN文库 项目介绍 这是一个采用前后端分离开发的项目&#xff0c;前端采用 Vue 开发、后端采用 Spring boot Mybatis 开发。 项目部署 ⭐️如果你有 docker 的话&#xff0c;直接 docker compose up 即可启动&#…

计算机基础面试题 |01.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

第4课 FFmpeg读取本地mp4文件并显示

在上节课&#xff0c;我们使用FFmpeg实现了一个最简单的rtmp播放器&#xff0c;它看起来工作正常。这节课&#xff0c;我们尝试让它来播放本地的mp4文件试试。 1.压缩备份上节课工程文件夹为demo3.rar&#xff0c;并修改工程文件夹demo3为demo4&#xff0c;重要的事情再说一遍…