java(2)方法的使用


 目录

1.前言

2.正文

2.1方法的定义

2.2方法的调用过程

2.3方法的实参与形参

2.3.1形参

2.3.2实参

2.3.3参数传递

2.4方法的重载

3.小结


1.前言

哈喽大家好啊,今天博主继续带领大家学习java的基本语法,java的基础语法部分打算用六到七篇博文完成讲解,最后再用一个小项目加强自己的熟练度,废话不多说,现在开始。

2.正文

2.1方法的定义

java中的方法,我个人感觉可以对标C语言中的函数来方便理解。在下文中。我仅反复用一段凝练的代码来讲清楚方法。

在Java中,方法是一段用于执行特定任务的代码块,它可以接受参数,执行操作,并返回结果。具体定义格式如下:

[修饰符] 返回类型 方法名(参数列表) {
    // 方法体
}
  • 修饰符:如publicprivatestaticfinal等,用于控制方法的访问权限和行为。具体在以后的文章会细讲。
  • 返回类型:方法执行完毕后返回的数据类型,如intStringvoid(无返回值)等。
  • 方法名:方法的名称,一般采用小驼峰命名。
  • 参数列表:方法执行时需要的参数,参数之间用逗号分隔。如果没有参数,可以省略参数列表或者写为空括号()

例如在下面这段代码中:

    public static int Add(int x,int y){
        return x+y;
    }

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(Add(a,b));
    }

我们在sout语句中调用了Add方法,其中public,static为修饰符,int为返回类型,Add为方法名,int x,int y为参数。

2.2方法的调用过程

在这里我们梳理清楚方法调用的过程:

  1. 首先在主调方法里调用目标方法。
  2. 将参数传递过去(这里有实参和形参俩个概念,下文讲解)。
  3. 找到方法的地址后,执行方法体。
  4. 被调方法结束,回到主调方法中继续往下执行。

这里需要注意的一点是:

方法在没被调用的时候是不会被执行的,只有被调用时才会执行。

所以下面俩段代码的输出结果是一致的:

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(Add(a,b));
    }

    public static int Add(int x,int y){
        return x+y;
    }
    public static int Add(int x,int y){
        return x+y;
    }

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(Add(a,b));
    }

main方法与Add方法的顺序不影响程序运行结果。

2.3方法的实参与形参

参数是方法执行时需要的输入值,这些参数在方法定义中被称为形参,而在方法调用时提供的参数的main方法中被称为实参。

2.3.1形参

形参是方法定义时声明的参数,它们在方法的参数列表中指定。形参相当于方法内部的局部变量,它们在方法被调用时创建,并在方法执行完毕后销毁。形参的主要用途是接收实参传递过来的值。

特点:

  • 形参是方法定义的一部分。
  • 形参只在方法被调用时存在。
  • 形参的值由实参提供。

2.3.2实参

实参是方法调用时传递给方法的实际值。实参可以是常量、变量、表达式或者方法的返回值。实参的值在方法调用时被传递给形参。

特点:

  • 实参是方法调用的一部分。
  • 实参可以是任何类型的值,包括基本数据类型和引用数据类型。
  • 实参的值在方法调用时确定。

则还是在下段代码中,a和b即为实参,而x和y为形参。

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(Add(a,b));
    }

    public static int Add(int x,int y){
        return x+y;
    }

2.3.3参数传递

参数传递的方式有两种:传递值和传递引用。

  1. 传递值

    • 基本数据类型(如intdoublechar等)的参数传递是通过值传递的。
    • 当方法被调用时,实参的值会被复制到形参中。
    • 方法内部对形参的修改不会影响到实参。
  2. 传递引用

    • 引用数据类型(如对象、数组等)的参数传递是通过引用传递的。
    • 当方法被调用时,实参的引用(内存地址)会被复制到形参中。
    • 方法内部对形参的修改会影响到实参,因为它们指向同一个对象。

2.4方法的重载

重载是一种允许同一个类中存在多个同名方法,但这些方法的参数列表(参数的类型、数量或顺序)不同的特性。具体规则如下:

  1. 方法名相同:在同一个类中,重载的方法必须具有相同的方法名。
  2. 参数列表不同:参数列表必须在类型、数量或顺序上有所不同。
  3. 返回类型不相关:方法的返回类型不作为重载的依据。即使两个方法的返回类型不同,只要它们的参数列表相同,它们就不能被认为是重载的方法。
  4. 访问修饰符不相关:方法的访问修饰符(如publicprivate等)也不影响重载。

将上文的代码稍作更改:

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = 3;
        System.out.println("三数相加:");
        System.out.println(Add(a,b,c));
        System.out.println("俩数相加:");
        System.out.println(Add(a,b));
    }

    public static int Add(int x,int y){
        return x+y;
    }

    public static int Add(int x,int y,int z){
        return x+y+z;
    }

我们可看到有俩个Add方法,但编译器会自动根据你所调用参数的数量,类型等不同来最终确定你所要调用的方法究竟是哪一个。

3.小结

今天关于方法的分享到这里就结束了,喜欢的小伙伴多多支持,别忘了点赞收藏支持一下哦,你的支持就是对我最大的鼓励。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【天怡AI-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

论文内容分类与检测系统源码分享

论文内容分类与检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

昇腾大模型推理解决方案MindIE部署

MindIE大模型推理套件 MindIE(Mind Inference Engine,昇腾推理引擎)是华为公司针对AI全场景推出的整体解决方案,包含丰富的推理加速套件。通过开放各层次AI能力,支撑客户多样化的AI业务需求,使能百模千态&a…

Kamailio-超强dispatcher负载均衡模块

Kamailio 负载均衡的功能主要依靠 Dispatcher 模块完成,模块官方文档参看 为什么要引入负载均衡?如何使用? 引入和配置功能路由调用命令行指令 为什么要引入负载均衡? Q: 如果单台VOIP服务的性能不能满足业务需求了&#xff0…

解决RabbitMQ设置TTL过期后不进入死信队列

解决RabbitMQ设置TTL过期后不进入死信队列 问题发现问题解决方法一:只监听死信队列,在死信队列里面处理业务逻辑方法二:改为自动确认模式 问题发现 最近再学习RabbitMQ过程中,看到关于死信队列内容: 来自队列的消息可…

秋招八股总结

transformer 损失函数 交叉熵的原理 公式 xi是true_label,yi是神经网络预测为正确的概率 对比学习loss 对比学习损失函数 InfoNEC Loss(bge中也用的这个) SimCSE的主要思想:同一句话通过不同的drop out作为正例&#xff0…

【计网】数据链路层:概述之位置|地位|链路|数据链路|帧

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山岗! 💫 欢迎来到我的学习笔记! ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 1. 在OSI体系结构中的位置 1. 位置:数…

Parallels Desktop 20(Mac虚拟机) v20.0.0 for Mac 最新破解版(支持M系列)

Parallels Desktop 20 for Mac 正式发布,完全支持 macOS Sequoia 和 Windows 11 24H2,并且在企业版中引入了全新的管理门户。 据介绍,新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新,最大的亮点是全新推出的 Parallels…

稳联Profinet转Canopen网关携手伺服,高效提升生产效率

在当今的工业生产领域,追求高效、精准和可靠的生产方式是企业不断努力的方向。稳联技术Profinet转Canopen(WL-ABC3033)网关与伺服系统的携手合作,为提高生产效率带来了新的机遇和突破。 实现无缝通信,优化生产流程稳联…

B站前端错误监控实践

前言 从23年开始,我们团队开始前端错误监控方向的开发。经历了一些列的迭代和发展,从监控SDK、上报、数据治理、看板集成、APM自研可视化初步完成了一条完整且适合B站前端监控。 截止目前(2024.08.01),前端监控在B站85%以上的业务线&#xf…

在基准测试和规划测试中选Flat还是Ramp-up?

Flat测试和Ramp-up测试是各有优势的,下面我们就通过介绍几种实用的性能测试策略来分析这两种加压策略的着重方向。 基准测试 基准测试是一种测量和评估软件性能指标的活动,通过基准测试建立一个已知的性能水平(称为基准线)&…

服务发现和代理实例的自动更新

☞ 返回总目录 1.服务发现的两种方式 StartFindService 方法 这是一个在后台启动的连续 “FindService” 活动,当服务实例的可用性发生变化时,会通过回调通知调用者。 它返回一个FindServiceHandle,可通过调用StopFindService来停止正在进行…

初学者蒙语学习,使用什么翻译软件学习更快?

为了加快蒙古语的学习,初学者应该从基础语法和词汇入手,利用语言学习应用进行系统学习,并通过音频和视频材料提高听力。语言交换和参加课程可以提供实践机会,而使用闪卡和文化沉浸有助于记忆词汇和理解语言背景。定期复习和设定学…

常用的k8s容器网络模式有哪些?

常用的k8s容器网络模式包括Bridge模式、Host模式、Overlay模式、Flannel模式、CNI(ContainerNetworkInterface)模式。K8s的容器网络模式多种多样,每种模式都有其特点和适用场景。Bridge模式适用于简单的容器通信场景;Host模式适用…

微服务保护之熔断降级

在微服务架构中,服务之间的调用是通过网络进行的,网络的不确定性和依赖服务的不可控性,可能导致某个服务出现异常或性能问题,进而引发整个系统的故障,这被称为 微服务雪崩。为了防止这种情况发生,常用的一些…

Debian项目实战——环境搭建篇

Debian系统安装 准备工作 1、系统镜像:根据自己的需要选择合适的版本格式:x86 / arm 架构 | 最好下载离线安装版本 | 清华镜像源 2、制作工具:balenaEtcher 3、系统媒介:16G以上U盘最佳 烧录镜像 打开balenaEtcher进行烧录&am…

克隆GitHub仓库中的一个文件夹

要只克隆GitHub仓库中的一个文件夹&#xff0c;你可以使用 git sparse-checkout 功能。以下是具体步骤&#xff1a; 克隆仓库&#xff08;使用 --no-checkout 选项&#xff0c;避免下载所有内容&#xff09;&#xff1a; git clone --no-checkout <仓库地址> 进入克隆的…

Active Directory 实验室设置第一部分- AD林安装

在之前的文章中&#xff0c;已经讨论了活动目录的基本知识。在这篇文章中&#xff0c;我们将讨论如何设置和配置环境&#xff0c;以便我们可以使用它来执行各种攻击方案和检测。我们将讨论如何通过GUI和CLI方式完成。 # 1、Active Directory 设置 让我们从活动目录实验室设置…

foc原理odrive驱动板的使用,以及功能介绍

文章目录 驱动板引脚&#xff1a;编码器的安装&#xff1a;电机参数编码器设置 odrive控制控制指令设置模式设置输入模式其他指令 调PID调试准则先调整内环&#xff0c;再调整外环在位置模式下调试结论 使用的灯哥开源的odrive驱动板&#xff0c;外接编码器 驱动板引脚&#xf…

泳池软管检测系统源码分享

泳池软管检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…