【Java探索之旅】方法的概念 定义 执行流程 实参与形参的交互

个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : Java编程秘籍
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一、方法的概念及定义
    • 1.1 方法的概念
    • 1.2 方法的定义
  • 二、方法的调用执行过程
    • 2.1 执行流程:
    • 2.2 注意事项:
    • 2.3 代码示例
  • 三、实参和形参的关系
  • 四、没有返回值的方法
  • 🌤️全篇总结

📑前言

方法是Java编程中非常重要的概念,它能够帮助我们组织代码、实现代码的重复使用,并使代码更加清晰易懂。本文将介绍方法的概念、定义以及调用执行过程,同时解释实参和形参之间的关系。通过实例和代码演示,我们将深入探讨方法在Java中的作用和运行机制。

一、方法的概念及定义

1.1 方法的概念

方法就是一个代码片段. 类似于 C 语言中的 “函数”。方法存在的意义(不要背, 重在体会)

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
  2. 做到代码被重复使用, 一份代码可以在多个位置使用.
  3. 让代码更好理解更简单.
  4. 直接调用现有方法开发, 不必重复造轮子

1.2 方法的定义

方法定义的格式

// 方法定义
修饰符 返回值类型 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];
}

代码示例

  • 示例一:实现一个方法,检测一个年份是否为闰年
public class Method{
// 方法定义public static boolean isLeapYear(int year){if((0 == year % 4 && 0 != year % 100) || 0 == year % 400){return true;}else{return false;}}
}
  • 示例二: 实现一个两个整数相加的方法
public class Method{
// 方法的定义public static int add(int x, int y) {return x + y;}
}

注意事项

  1. 修饰符:现阶段直接使用public static 固定搭配

  2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void

  3. 方法名字:采用小驼峰命名

  4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开

  5. 方法体:方法内部要执行的语句

  6. 在java当中,方法必须写在类当中

  7. 在java当中,方法不能嵌套定义

  8. 在java当中,没有方法声明一说

二、方法的调用执行过程

2.1 执行流程:

调用方法—>传递参数—>找到方法地址—>执行被调方法的方法体—>被调方法结束返回—>回到主调方法继续往下执行

2.2 注意事项:

  • 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.
  • 一个方法可以被多次调用

2.3 代码示例

  • 示例1 计算两个整数相加
public class Method {public static void main(String[] args) {int a = 10;int b = 20;System.out.println("第一次调用方法之前");int ret = add(a, b);System.out.println("第一次调用方法之后");System.out.println("ret = " + ret);System.out.println("第二次调用方法之前");ret = add(30, 50);System.out.println("第二次调用方法之后");System.out.println("ret = " + ret);}public static int add(int x, int y) {System.out.println("调用方法中 x = " + x + " y = " + y);return x + y;}
} 
// 执行结果
一次调用方法之前
调用方法中 x = 10 y = 20
第一次调用方法之后
ret = 30
第二次调用方法之前
调用方法中 x = 30 y = 50
第二次调用方法之后
ret = 80

三、实参和形参的关系

在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体。相当于是形参只是实参的一份临时拷贝,并且对形参的值进行修改并不会影响实参。

public static void swap(int x,int y) {int tmp = x;x = y;y = tmp;System.out.println("x = "+x+" y = "+y);
}
public static void main(String[] args) {int a = 10;int b = 20;swap(a,b);System.out.println("a = "+a+" b = "+b);
}

在调用swap方法交换之后,形参x和y的值发生了改变,但是main方法中a和b还是交换之前的值,即没有交换成功

实参a和b是main方法中的两个变量,其空间在main方法的栈(一块特殊的内存空间)中,而形参x和y是swap方法中的两个变量,x和y的空间在swap方法运行时的栈中,因此:实参a和b 与 形参x和y是两个没有任何关联性的变量,在swap方法调用时,只是将实参a和b中的值拷贝了一份传递给了形参x和y,因此对形参x和y操作不会对实参a和b产生任何影响。

注意:对于基础类型来说, 形参相当于实参的拷贝. 即 传值调用

四、没有返回值的方法

方法的返回值是可选的. 有些时候可以没有的,没有时返回值类型必须写成void

class Test {public static void main(String[] args) {int a = 10;int b = 20;print(a, b);}public static void print(int x, int y) {System.out.println("x = " + x + " y = " + y);}
}

另外, 如上述的交换两个整数的方法, 就是没有返回值的。

🌤️全篇总结

本篇我们深入探讨了Java中方法的概念、定义和调用执行过程,以及实参和形参之间的关系。方法作为代码组织和重用的重要工具,在Java编程中扮演着关键角色。通过实例代码的演示,我们理解了方法如何被调用执行,以及实参和形参之间的交互关系。希望本文能够帮助大家更好地掌握方法的使用。

在这里插入图片描述

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

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

相关文章

2024.4.12每日一题

今天上午参加了蓝桥杯,只会暴力,还需努力学习 LeetCode 找到冠军 || 题目链接:2924. 找到冠军 II - 力扣(LeetCode) 题目描述 一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。每支队伍也是 有向无环图…

Harmony背景图片铺满

在对页面,弹框设置背景时,需要放大全屏。 backgroundImageSize backgroundImageSize(value: SizeOptions | ImageSize) 设置组件背景图片的宽高。 卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。 系统能力&am…

SpringMVC(一)【入门】

前言 学完了大数据基本组件,SpringMVC 也得了解了解,为的是之后 SpringBoot 能够快速掌握。SpringMVC 可能在大数据工作中用的不多,但是 SSM 毕竟是现在就业必知必会的东西了。SpringBoot 在数仓开发可能会经常用到,所以不废话学吧…

DCI-BOX 数据中心互联扩容设备

2U DCI-BOX是针对DCI数据互联开发的一款高性能、大容量DCI平台 恒通未来2U DCI-BOX 优势: 随着5G网络的演进,人们对大数据需求越来越旺盛,2U DCI-BOX是针对DCI数据互联开发的一款高性能、大容量DCI平台。 1. 单机箱最大容量6.4T,单100G功耗…

java中的线程通讯和线程池,Callable任务

线程通讯: 在多线程中,某个线程进入“等待状态”时,需要某个线程来唤醒 等待方法: wait()//无线等待 wait(long 毫秒)//计时等待 注意,调用wait方法,会自动释放掉锁资源 处于wait状态只能由其他线程唤醒 唤…

如何在宽松许可证下构建有竞争力的Milvus Cloud商业服务?

如何在宽松许可证下构建有竞争力的商业服务? 开源公司并不一定要修改许可证作为唯一的出路,不过其挑战在于找到开源与商业化之间的平衡。 以 Zilliz 为例,我们选择将开源向量数据库 Milvus 捐赠给 Linux 基金会。在过去四年的时间里,Milvus 已经在 GitHub 上获得了超过 …

uni-app的页面中使用uni-map-common的地址解析(地址转坐标)功能,一直报请求云函数出错

想在uni-app的页面中使用uni-map-common的地址解析(地址转坐标)功能,怎么一直报请求云函数出错。 不看控制台啊,弄错了控制台,就说怎么一直没有打印出消息。 所以开始换高德地图的,昨天申请了两个 一开始用的第二个web…

大话设计模式之桥接模式

桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。这种模式通过提供一个桥接接口来实现这种分离,使得抽象部分和实现部分可以在运行时独立地进行修改。 桥接模式主要由两个部分组成:抽象部分…

ADB的基本语法及常用命令

学习网址 ADB命令的基本语法如下&#xff1a; adb [-d|-e|-s <serialNumber>] <command> 如果有多个设备/模拟器连接&#xff0c;则需要为命令指定目标设备。 参数及含义如下&#xff1a; 常用命令如下&#xff1a; 1. 启动ADB服务 adb start-server 2. 停止…

麦多馅饼开店流程及费用明细?

麦多馅饼作为一种深受人们喜爱的美食&#xff0c;在市场上拥有广泛的消费群体。近年来&#xff0c;越来越多的创业者将目光投向了麦多馅饼这一领域&#xff0c;希望通过加盟或自主经营的方式开设一家麦多馅饼店。本文将详细介绍麦多馅饼的开店流程以及相关的费用明细&#xff0…

单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合

单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分 单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 细胞定量…

数据库(mysql)-连接嵌套查询-2

子查询 MySQL中的子查询&#xff08;Subquery&#xff09;是嵌套在其他SQL查询中的查询。子查询可以出现在SELECT、FROM或WHERE子句中&#xff0c;并用于返回将被用于外部查询的数据。子查询的结果可以是一个单一的值、一行、一列或多行多列的数据集。 单行单列查询 实例 #查…