4.方法的使用

方法是指一段具有独立功能的代码块,只有被调用时才会执行

方法的主要作用体现在:

  1. 代码组织:将原本挤在一起的臃肿代码按照功能进行分类管理

    • 例如:将用户注册的验证逻辑、数据库操作、结果返回等分离成不同方法
  2. 提高复用性:相同功能的代码只需编写一次,多处调用

    • 例如:计算两个数最大值的方法可以在程序多个地方复用

方法的定义和调用

public static void 方法名() {// 方法体
}调用方式:方法名();

注意:

        1.平级关系:方法之间是并列关系,不允许嵌套定义

            错误示例:

public static void methodA() {public static void methodB() { // 不允许在方法内定义方法// ...}
}

        2.调用执行:方法不调用就不会执行

                即使定义了多个方法,如果没有调用它们,这些方法都不会执行

        3.执行顺序:方法的定义顺序与执行顺序无关,执行顺序取决于调用顺序

方法的内存机制

        方法在内存中的生命周期

  1. 未调用时:存放在方法区的字节码文件中
  2. 调用时:进入栈内存运行
  3. 执行完毕:从栈内存中退出

         Java内存结构(部分)     

           方法区:存储加载的字节码(.class)文件

                        字节码文件是源代码编译后的结果,保留了原代码的结构

           栈内存:方法运行时使用的内存区域                 

                        遵循"先进后出"的原则,方法调用形成调用栈

public static void main(String[] args) {System.out.println("开始");getMax();System.out.println("结束");
}public static void getMax() {int num1=10;int num2=20;int max = num1>num2?num1:num2;System.out.println(max);
}

  代码执行流程详解

        

  1. main方法入栈:虚拟机自动调用main方法,main方法进入栈内存
  2. 打印"开始":执行第一条语句,控制台输出"开始"
  3. 调用getMax方法
    • getMax方法进入栈内存
    • 执行getMax方法体:
      • 定义变量num1=10, num2=20
      • 计算最大值并存储在max变量中
      • 打印最大值20到控制台
  4. getMax方法出栈:方法执行完毕,退出栈内存
  5. 继续执行main方法:打印"结束"
  6. main方法出栈:程序执行完成

带参数方法的定义和调用

public static void 方法名(数据类型 变量名) {// 方法体
}
// 多个参数:
public static void 方法名(数据类型 变量1, 数据类型 变量2, ...) {// 方法体
}调用方法:方法名(参数值)

  参数类型

  • 形参(形式参数):方法定义时声明的参数  
  • 实参(实际参数):方法调用时传入的具体值

带返回值的定义和调用

public static 返回的数据类型 方法名(数据类型 变量名,……){方法体; return 值}调用的方式:返回的数据类型  变量名 = 方法名(参数值)

方法通用定义格式

public static 返回值类型 方法名(数据类型 变量名,……){方法体;return 数据;
}

定义方法时,要做到两个明确:

        明确参数:主要明确参数的类型和数量

        明确返回值类型:主要时明确方法操作完毕后是否有结果数据,如果有,写对应的数据类型,如果没有,写void

方法的常见问题

        1.方法不调用不执行

        2.方法与方法之间是平级关系,不能嵌套定义

        3.方法的编写顺序和执行顺序无关

        4.方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写,如果要写return,后面不能跟具体的数据

        5.return语句下面,不能编写代码,因为永远执行不到,属于无效代码x

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

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

相关文章

day21-Excel文件解析

目录 1. 概述 2. Apache POI 3. XSSF解析Excel文件 3.1. 添加Jar包依赖 3.2. Workbook(Excel文件) 3.2.2. 加载(解析)Excel文件 3.3. Sheet (工作簿) 3.3.1. 创建工作簿 3.3.2. 获取工作簿 3.3.3.…

与 TRON (波场) 区块链进行交互的命令行工具 (CLI): tstroncli

源码仓库 一个基于 Node.js 和 TypeScript 构建的,用于与 TRON (波场) 区块链进行交互的命令行工具 (CLI)。 本项目旨在提供一个简单、可扩展的框架,让开发者可以轻松地通过命令行调用 TRON 的 HTTP API,实现查询链上信息、发送交易等操作。…

rabbitmq--默认模式(点对点)

导入包&#xff1a;<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>application.yml springrabbitmq:host: localhostport: 5672username: guestpassword: gue…

外网访问文档编辑器Docsify(Windows版本),内网穿透技术应用简便方法

如果你正在为项目写文档&#xff0c;但又不想折腾复杂的构建流程&#xff0c;也不想维护一堆静态 HTML 文件&#xff0c;那你一定要试试 docsify。docsify 是一个基于 JavaScript 的开源文档生成工具&#xff0c;它最大的特点就是“无构建”&#xff1a;你只需要写 Markdown 文…

第4章唯一ID生成器——4.5 美团点评开源方案Leaf

Leaf是美团点评公司基础研发平台推出的一个唯一ID生成器服务&#xff0c;其具备高可靠性、低延迟、全局唯一等特点&#xff0c;目前已经被广泛应用于美团金融、美团外卖、美团酒旅等多个部门。Leaf根据不同业务的需求分别实现了Leaf-segment和Leaf-snowflake两种方案&#xff0…

分布式搜索和分析引擎Elasticsearch实战指南

ES 介绍与安装 Elasticsearch&#xff0c; 简称 ES&#xff0c;它是个开源分布式搜索引擎&#xff0c;它的特点有&#xff1a;分布式&#xff0c;零配置&#xff0c;自动发现&#xff0c;索引自动分片&#xff0c;索引副本机制&#xff0c;restful 风格接口&#xff0c;多数据源…

【13】C# 窗体应用WinForm——.NET Framework、WinForm、工程创建、工具箱简介、窗体属性及创建

文章目录1. WinForm工程创建 及 界面介绍1.1 WinForm工程创建1.2 窗体 Form1.cs “查看代码”1.3 打开窗体设计器2. 工具箱3. 窗体属性及创建3.1 窗体属性3.2 实例&#xff1a;创建一个新窗体3.2.1 添加新Windows窗体3.2.2 窗体属性配置3.2.3 设置该窗体为启动窗体WinForm 是 W…

论文阅读-IGEV

文章目录1 概述2 模块2.1 总体说明2.2 特征抽取器2.3 CGEV2.4 基于Conv-GRU的更新算子2.5 空间上采样2.6 损失函数3 效果参考文献1 概述 在双目深度估计中&#xff0c;有一类是基于3D卷积的方法&#xff0c;代表就是PSMNet&#xff0c;它应用 3D 卷积编码器-解码器来聚合和正则…

[2025CVPR-图象分类方向]SPARC:用于视觉语言模型中零样本多标签识别的分数提示和自适应融合

1. ​背景与问题定义​ 视觉语言模型&#xff08;如CLIP&#xff09;在单标签识别中表现出色&#xff0c;但在零样本多标签识别&#xff08;MLR&#xff09;任务中表现不佳。MLR要求模型识别图像中多个对象&#xff08;例如&#xff0c;图像包含“猫”和“沙发”&#xff09;&…

2025创始人IP如何破局?

内容持续更新却无人点赞&#xff0c;课程精心打磨却无人报名&#xff0c;直播卖力讲解却无人停留 —— 明明有内容、有经验、有成果&#xff0c;却始终难以打动用户。问题的核心&#xff0c;或许在于你尚未打造出真正的 “创始人IP”。‌一、创始人IP&#xff1a;不止标签&…

告别配置混乱!Spring Boot 中 Properties 与 YAML 的深度解析与最佳实践

一、Spring配置文件 1.1、什么是Spring配置 Spring配置指的是在Spring框架中定义和管理应用程序组件&#xff08;如Bean&#xff09;及其依赖关系的过程 作用&#xff1a; 配置文件主要用于解决硬编码问题&#xff0c;它将可能变更的信息集中存放。程序启动时&#xff0c;会从…

无人机喷洒系统技术要点与难点解析

一、 模块运行方式1. 任务规划与加载模块&#xff1a;输入&#xff1a;农田边界、障碍物信息、作物类型、病虫害信息、所需喷洒量、天气条件。运行&#xff1a;利用地面站软件或移动APP&#xff0c;规划最优飞行路径&#xff0c;设定飞行高度、速度、喷洒参数、作业区域。将规…

mongodb源代码分析createCollection命令创建Collection流程分析

MongoDB 提供两种方式创建集合&#xff1a;隐式创建 和 显式创建。方式 1&#xff1a;隐式创建&#xff08;推荐&#xff09;当你向不存在的集合中插入文档时&#xff0c;MongoDB 会自动创建该集合。示例在 db中隐式创建 users 集合&#xff1a;javascriptdb.users.insertOne({…

c++注意点(13)----设计模式(抽象工厂)

创建型模式抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供一个接口&#xff0c;用于创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。简单说&#xff0c;它就像一个 "超级工厂"&#xff…

【大语言模型入门】—— Transformer 如何工作:Transformer 架构的详细探索

Transformer 如何工作&#xff1a;Transformer 架构的详细探索Transformer 如何工作&#xff1a;Transformer 架构的详细探索什么是 Transformer&#xff1f;什么是 Transformer 模型&#xff1f;历史背景从 RNN 模型&#xff08;如 LSTM&#xff09;到 Transformer 模型在 NLP…

iOS安全和逆向系列教程 第20篇:Objective-C运行时机制深度解析与Hook技术

iOS安全和逆向系列教程 第20篇:Objective-C运行时机制深度解析与Hook技术 引言 在上一篇文章中,我们深入学习了ARM64汇编语言的基础知识,掌握了从寄存器操作到指令分析的完整技能体系。现在,我们将把这些底层知识与iOS应用的高层逻辑联系起来,深入探讨Objective-C运行时…

IDEA中全局搜索快捷键Ctrl+Shift+F为何失灵?探寻原因与修复指南

在软件开发中&#xff0c;高效地查找和管理代码是提升生产力的关键。IntelliJ IDEA&#xff0c;作为一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了丰富的搜索功能&#xff0c;帮助开发者迅速定位代码、资源、甚至是IDE功能本身。 在 IntelliJ IDE…

【学习笔记】Lean4 定理证明 ing

文章目录概述Lean4 定理证明初探示例&#xff1a;证明 1 1 2示例&#xff1a;证明 2 * (x y) 2 * x 2 * yLean4 定理证明基础命题与定理命题&#xff08;Proposition&#xff09;定理&#xff08;Theorem&#xff09;量词策略概述 Lean证明是指在Lean环境中&#xff0c;通…

墨者:SQL注入漏洞测试(HTTP头注入)

墨者学院&#xff1a;SQL注入漏洞测试(HTTP头注入)&#x1f680; 1. 什么是HTTP头注入&#xff1f;&#x1f50d; HTTP头注入是指攻击者通过篡改HTTP请求头部的字段&#xff08;如User-Agent、Referer、Cookie、Host等&#xff09;&#xff0c;将恶意SQL代码插入到后端数据库查…

linux_前台,后台进程

*在用户访问端口时&#xff0c;操作系统会形成对应的session,在其的内部进一步形成bash等进程 *一个会话只有一个前台进程&#xff0c;可以有多个后台进程&#xff0c;前台与后台进程的区别在于谁拥有键盘的使用权*前台与后台进程都可以访问显示器但是后台无法访问标准输入获取…