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中,方法是一段用于执行特定任务的代码块,它可以接受参数,执行操作,并返回结果。具体定义格式如下:
[修饰符] 返回类型 方法名(参数列表) {// 方法体
}
- 修饰符:如
public,private,static,final等,用于控制方法的访问权限和行为。具体在以后的文章会细讲。- 返回类型:方法执行完毕后返回的数据类型,如
int,String,void(无返回值)等。- 方法名:方法的名称,一般采用小驼峰命名。
- 参数列表:方法执行时需要的参数,参数之间用逗号分隔。如果没有参数,可以省略参数列表或者写为空括号
()。
例如在下面这段代码中:
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方法的调用过程
在这里我们梳理清楚方法调用的过程:
- 首先在主调方法里调用目标方法。
- 将参数传递过去(这里有实参和形参俩个概念,下文讲解)。
- 找到方法的地址后,执行方法体。
- 被调方法结束,回到主调方法中继续往下执行。
这里需要注意的一点是:
方法在没被调用的时候是不会被执行的,只有被调用时才会执行。
所以下面俩段代码的输出结果是一致的:
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参数传递
参数传递的方式有两种:传递值和传递引用。
传递值:
- 基本数据类型(如
int,double,char等)的参数传递是通过值传递的。- 当方法被调用时,实参的值会被复制到形参中。
- 方法内部对形参的修改不会影响到实参。
传递引用:
- 引用数据类型(如对象、数组等)的参数传递是通过引用传递的。
- 当方法被调用时,实参的引用(内存地址)会被复制到形参中。
- 方法内部对形参的修改会影响到实参,因为它们指向同一个对象。
2.4方法的重载
重载是一种允许同一个类中存在多个同名方法,但这些方法的参数列表(参数的类型、数量或顺序)不同的特性。具体规则如下:
- 方法名相同:在同一个类中,重载的方法必须具有相同的方法名。
- 参数列表不同:参数列表必须在类型、数量或顺序上有所不同。
- 返回类型不相关:方法的返回类型不作为重载的依据。即使两个方法的返回类型不同,只要它们的参数列表相同,它们就不能被认为是重载的方法。
- 访问修饰符不相关:方法的访问修饰符(如
public,private等)也不影响重载。
将上文的代码稍作更改:
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.小结
今天关于方法的分享到这里就结束了,喜欢的小伙伴多多支持,别忘了点赞收藏支持一下哦,你的支持就是对我最大的鼓励。
相关文章:
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的基础语法部分打算用六到七篇博文完…...
基于对数变换的图像美白增强,Matlab实现
博主简介:matlab图像处理(QQ:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于对数变换的图像美白增强,用matlab实现。 一、案例背景和算法介绍 这次案例是美白算法&…...
MySQL高阶1873-计算特殊奖金
目录 题目 准备数据 分析数据 总结 题目 编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 M 开头,那么他的奖金是他工资的 100% ,否则奖金为 0 。 返回的结果按照 employee_id 排序。 准备数据 Crea…...
Ngnix 在windows上的简单使用
安装 下载链接: nginx: download 选择页面中 Stable version 下的windows版本直接下载解压到本地。 运行nginx: 解压到本地后,结构如图: cmd 进入到上图的根目录,运行 start nginx ,即可开启。 打开 http://localhost 进行查看,如果正常打开nginx的测试页面,则说…...
嵌入式开发--STM32延时函数重构
在做嵌入式开发的时候,经常需要用到延时函数,STM32为我们提供了一个标准的毫秒级延时函数:HAL_Delay()。这个函数用起来很方便,括号内的数就是延时的毫秒数。 但是程序中如果需要用到看门狗的话呢,这玩意需要经常喂的…...
OpenAI最新发布的o1-preview模型,和GPT-4o到底哪个更强?
近日,OpenAI又出新作,正式推出了名为o1的新模型,这是其“推理”系列的首个成员,自然引起了业界的广泛关注。本文旨在全面剖析o1模型的核心特征、独特优势,并通过与先前版本GPT-4o的细致对比,为读者揭示这一…...
基于Python+SQLite的课程管理系统
系统需求简介 1.1需求分析 实现一个具体的课程管理系统。按照软件工程思路设计简化的专业课数据库,尽量模拟现有专业课程一个学期的选课排课原型实际情况。(注:本系统由本人单独设计、开发完成) 1.2 数据结构需求分析 课程管理…...
每日一练 | USG系统默认安全区域
01 真题题目 关于USG系统(华为的安全网关产品)的安全防火墙的默认安全区域的描述,正确的是: A. 默认安全区域可以删除 B. 默认安全区域可以修改安全级别 C. 默认安全区域不能删除,但可以修改安全级别D. 默认安全区域…...
技术老总眼中的品宣与促销:挑战与对策
在许多技术驱动的企业中,技术老总们往往对产品研发和技术创新拥有深刻的理解,然而当涉及市场营销,特别是“品宣”(品牌宣传)与“促销”时,他们的观念可能相对简单,有时甚至认为这两者没有本质的…...
[全网首篇]关于 VMSA-2024-0019 安全公告(CVE-2024-38812、CVE-2024-38813)的说明与解决方案
漏洞说明: CVE-2024-38812 CVE 描述: vCenter Server 在实现 DCERPC 协议时存在堆溢出漏洞。VMware 已将此问题的严重性评估 为临界严重性范围,CVSSv3 的最高基本分数为 9.8。 已知攻击: 具有 vCenter Server 网络访问权限…...
监控易监测对象及指标之:全面监控GBase数据库
在数字化时代,数据库作为企业核心数据资产的管理中心,其稳定性和性能直接关系到业务的连续性和企业的运营效率。GBase数据库作为高性能的分布式数据库系统,广泛应用于各类业务场景。为了确保GBase数据库的稳定运行和高效性能,对其…...
推荐五种msvcr71.dll丢失的解决方法,msvcr71.dll为什么会丢失?
当你的电脑提示msvcr71.dll丢失时是什么情况?为什么会出现这样的问题?msvcr71.dll丢失和什么有关呢?那么msvcr71.dll丢失应该如何解决呢?今天就和大家聊聊msvcr71.dll丢失的解决办法的详细解决步骤。 msvcr71.dll丢失是否与系统更…...
Java 内存模型(JMM)
JMM,全称 Java Memory Model ,中⽂释义Java内存模型 1. 概述 对于 Java 程序员来说,在虚拟机⾃动内存管理机制下,不再需要像 C/C 程序开发程序员这 样为每⼀个 new 操作去写对应的 delete / free 操作,不容易出现内存…...
用于安全研究的 Elastic Container Project
作者:来自 Elastic Andrew Pease•Colson Wilhoit•Derek Ditch 使用 Docker 启动 Elastic Stack 序言 Elastic Stack 是一个模块化数据分析生态系统。虽然这允许工程灵活性,但建立开发实例进行测试可能很麻烦。建立 Elastic Stack 的最简单方法是使用…...
STM8L101低功耗的理解
一.通过降低时钟频率来降低功耗: 规格书如图 1.code 从flash启动,主频率是16Mhz时,功耗测量2.51ma左右,对应程序如下: 2.code从flash启动,主频率是2Mhz时(上电默认值),功…...
Kotlin cancel CoroutineScope.launch的任务后仍运行
Kotlin cancel CoroutineScope.launch的任务后仍运行 import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope CoroutineScope(Dispatchers.IO)val job coroutineScope.launch {var i 0while (i < Int.MAX_VALUE) {iprintln(i)}}// 2ms 取消协程delay(…...
你是不是分不清哪些字体是商用,哪些非商用?快来看,免得莫名其妙负债。
前言 最近发现有好多小伙伴在做PPT的时候,都有一个很不好的习惯:没有调整好字体。 这里说的没有调整好字体的意思是:在一些公开发布的内容上使用一些可能造成侵权的字体。 字体侵权的后果相当严重。轻者可能面临法律纠纷,重者…...
新电脑工作流搭建记录-前端篇
vscode: url: Visual Studio Code - Code Editing. Redefined 插件:Chinese、git history、git graph、codelf、css peek、auto closed tad、auto rename tag、Quokka.js、Image preview Node 官网直接下载:下载 | Node.js node版本管理…...
XXL-JOB 漏洞大全
一、前言 在当今的数字化时代,任务调度平台对于企业级应用来说至关重要。它们负责自动化和协调各种时间敏感或周期性的任务,确保业务流程的顺畅运行。XXL-JOB作为一款流行的分布式任务调度平台,因其强大的功能和易用性,被广泛部署…...
使用 Visual Studio Code 配置 C/C++ 开发环境
Visual Studio Code(简称 VSCode)是一款非常流行的代码编辑器,提供了丰富的扩展和配置支持,使其成为进行 C/C 开发的一款理想工具。本文将详细介绍如何在 VSCode 中配置 C/C 开发环境,涵盖安装必要的工具和插件、编写简…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
