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

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.lryc.cn/news/270882.html

相关文章:

  • 2013年第二届数学建模国际赛小美赛B题寄居蟹进化出人类的就业模式解题全过程文档及程序
  • 2023总结
  • Prometheus 监控进程
  • 用ChatGPT挑选钻石!著名珠宝商推出-珠宝GPT
  • 啊?这也算事务?!
  • 数据通信网络基础的网络参考模型华为ICT网络赛道
  • 弱电工程计算机网络系统基础知识
  • 大数据与人工智能|万物皆算法(第三节)
  • [语音识别]开源语音识别faster-whisper模型下载地址
  • JS + CSS 实现高亮关键词(不侵入DOM)
  • Qt 中使用 MySQL 数据库保姆级教程(下)
  • 【数据库原理】(1)数据库技术的发展
  • 【动态规划】【字符串】C++算法:正则表达式匹配
  • fgetc_fgets_getc_getchar
  • 12.30_黑马数据结构与算法笔记Java
  • 【电路笔记】-电容分压器
  • 线性代数基础知识
  • Linux Shell 016-文本比较工具diff
  • 八股文打卡day13——计算机网络(13)
  • android studio导入module
  • Prometheus通过consul实现自动服务发现
  • c++11--原子操作,顺序一致性,内存模型
  • 【数据结构】栈和队列(队列的基本操作和基础知识)
  • 设计模式——适配器模式(Adapter Pattern)
  • 测试C#使用OpenCvSharp从摄像头获取图片
  • 【基础】【Python网络爬虫】【12.App抓包】reqable 安装与配置(附大量案例代码)(建议收藏)
  • LabVIEW在电机噪声与振动探测的应用
  • 编码器是什么,以光电编码器为例,说明一下光电编码器的名字由来,结构,原理,特点,用处
  • MySQL:主从复制
  • 【K8S 二进制部署】部署Kurbernetes的网络组件、高可用集群、相关工具