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

news2025/9/18 17:08:13

前言:

学了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.coloradmin.cn/o/1347792.html

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

相关文章

NGUI基础-三大基础组件之Panel组件

目录 Panel组件 Panel的作用&#xff1a; 注意&#xff1a; 相关关键参数讲解&#xff1a; Alpha&#xff08;透明度值&#xff09;&#xff1a; Depth&#xff08;深度&#xff09;&#xff1a; Clippinng&#xff08;裁剪&#xff09;&#xff1a; ​编辑 None Tex…

八. 实战:CUDA-BEVFusion部署分析-环境搭建

目录 前言0. 简述1. CUDA-BEVFusion浅析2. CUDA-BEVFusion环境配置2.1 简述2.2 源码下载2.3 模型数据下载2.4 基础软件安装2.5 protobuf安装2.5.1 apt 方式安装2.5.2 源码方式安装 2.6 编译运行2.6.1 配置 environment.sh2.6.2 利用TensorRT构建模型2.6.3 编译运行程序 2.7 拓展…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;功…

分库分表之Mycat应用学习五

5 Mycat 离线扩缩容 当我们规划了数据分片&#xff0c;而数据已经超过了单个节点的存储上线&#xff0c;或者需要下线节 点的时候&#xff0c;就需要对数据重新分片。 5.1 Mycat 自带的工具 5.1.1 准备工作 1、mycat 所在环境安装 mysql 客户端程序。 2、mycat 的 lib 目录…

汇川PLC(H5U):定时器指令

一、H5U系列的定时器种类 H5U系列PLC的定时器指令都封装成指令块了&#xff0c;共4种类型&#xff1a;脉冲定时器、接通延时定时器、关断延时定时器、时间累加定时器。 H5U系列PLC的定时器时间基准是1ms&#xff0c;在IN引脚的执行指令有效的时候开始跟新计数器的值。 我们知…

以太网转RS485通讯类库封装

最近选用有人科技的以太网转RS485模块做项目&#xff0c;设备真漂亮&#xff0c;国货之光。调通了通讯的代码&#xff0c;发到网上供大家参考&#xff0c;多多交流。 以下分别是配套的头文件与源文件&#xff1a; /*******************************************************…

Git 常用命令知识笔记

Git 仓库数据结构 Git 仓库由一个个的 commit 组成某些 commit 上会有一些 branch 指向它们&#xff0c;这些 branch 的本质是引用有一个特殊的引用叫做 HEAD&#xff0c;它始终指向当前的位置&#xff0c;这个位置可以是 commit&#xff0c;也可以是 branch staging area 暂存…

LTPI协议的理解——1、LTPI协议的定义和结构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LTPI协议的理解——1、LTPI协议的定义和结构 定义DC-SCM 2.0 LTPI 结构GPIO通道I2C/SMBus通道Uart通道OEM通道数据通道 总结 定义 LTPI (LVDS Tunneling Protocol & Int…

easyexcel 导出

在使用EasyExcel库进行数据写入时&#xff0c;通常我们会使用实体类来存储数据。但是当遇到动态查询&#xff0c;无法确定属性数量和名称时&#xff0c;就需要使用Map来接收数据。然而&#xff0c;直接将Map中的数据写入Excel表格并不是一件简单的事情。接下来&#xff0c;我将…

计算机操作系统(OS)——P3内存管理

1、内存的基础知识 学习目标&#xff1a; 什么是内存&#xff1f;有何作用&#xff1f; 内存可存放数据。程序执行前__需要先放内存中才能被CPU处理__——缓和CPU与硬盘之间的速度矛盾。 【思考】在多道程序程序下&#xff0c;系统会有多个进程并发执行&#xff0c;也就是说…

PyTorch常用工具(2)预训练模型

文章目录 前言2 预训练模型 前言 在训练神经网络的过程中需要用到很多的工具&#xff0c;最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块&#xff0c;合理使用这些工具可以极大地提高编程效率。 由于内容较多&#xff0c;本文分成了五篇…

Centos8之更换DNF源

一、DNF包管理器简介 DNF&#xff08;Dandified Yum&#xff09;是一个用于Fedora、CentOS和RHEL等Linux发行版的包管理器。它是Yum&#xff08;Yellowdog Updater, Modified&#xff09;的下一代版本&#xff0c;旨在提供更快、更可靠的软件包管理体验。以下是一些DNF包管理器…

【YOLO系列】yolo V1 ,V3,V5,V8 解释

文章目录 yolo V1 模型结构图通道数 的 物理意义是什么&#xff1f;输出 7730 怎么理解&#xff1f;YOLO v1 损失函数LOSS yolo V3yolo V5yolo V8 视频来源&#xff1a;https://www.bilibili.com/video/BV13K411t7Zs/ AI视频小助理 一、YOLO系列的目标检测算法&#xff0c;其中…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《兼顾捕碳强度与可再生能源消纳的储能容量配置优化方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》 这个标题涉及到两个主要方面&#xff1a;捕碳强度和可再生能源的消纳&#xff0c;以及与之相关的储能容量配置的优化方法。下面我会逐一解读这两个方面&…

ES6之生成器(Generator)

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

OpenCV-11颜色通道的分离与合并

本次我们使用两个比较重要的API split&#xff08;mat&#xff09;将图像的通道进行分割。 merge&#xff08;(ch1&#xff0c;ch2&#xff0c;ch3)&#xff09;将多个通道进行融合。 示例代码如下&#xff1a; import cv2 import numpy as npimg np.zeros((480, 640, 3),…

HTML使用JavaScript的三种方式

要使用 JavaScript&#xff0c;你可以在 HTML 文件中的 <script> 标签中编写代码&#xff0c;或者将代码保存到一个单独的 .js 文件中并在 HTML 文件中引入。以下是一些常用的 JavaScript 使用方式&#xff1a; 内联 JavaScript&#xff1a;在 HTML 文件的 <script&g…

CodeWave赋能创新的全功能技术平台

目录 前言1 应用中心2 资产中心&#xff1a;汇聚创新能量&#xff0c;提供开发加速3 集成中心3.1 API管理3.2 报表管理 4 运维中心4.1 资源监控4.2 用户管理4.3 权限管理4.4 日志与监控 5 配置中心5.1 源码配置5.2 镜像仓库配置5.3 数据库配置5.4 报表配置5.5 资产配置5.6 品牌…

【小沐学NLP】Python实现K-Means聚类算法(nltk、sklearn)

文章目录 1、简介1.1 机器学习1.2 K 均值聚类1.2.1 聚类定义1.2.2 K-Means定义1.2.3 K-Means优缺点1.2.4 K-Means算法步骤 2、测试2.1 K-Means&#xff08;Python&#xff09;2.2 K-Means&#xff08;Sklearn&#xff09;2.2.1 例子1&#xff1a;数组分类2.2.2 例子2&#xff1…

有道翻译web端 爬虫, js

以下内容写于2023-12-28, 原链接为:https://fanyi.youdao.com/index.html#/ 1 在输入框内输入hello world进行翻译,通过检查发出的网络请求可以看到翻译文字的http接口应该是: 2 复制下链接最后的路径,去js文件中搜索下: 可以看到这里是定义了一个函数B来做文字的翻译接口函数…