一、今日学习目标
- 理解什么是 Java 方法,以及方法的核心作用与优势
- 掌握三种方法的格式:无参数无返回值、带参数无返回值、带参数带返回值
- 理解方法的定义、调用流程,分清形参与实参的区别
- 掌握带返回值方法的三种调用方式,理解
return语句的用法与注意事项 - 熟悉方法的核心注意事项,避免常见的编译与运行错误
二、今日知识点
(1)什么是方法
方法就是一段具有独立功能的代码块,可以被重复调用执行,是 Java 实现代码复用的核心方式之一。简单来说,就是把一段反复用到的代码,打包成一个 “工具”,需要的时候直接调用这个工具,不用重复写代码。
(2)方法的作用、使用场景与优势
1. 核心优势
| 优势 | 说明 |
|---|---|
| 提高代码复用性 | 相同功能的代码只需要写一次,就能在多个地方重复调用 |
| 提升代码可维护性 | 功能修改只需要修改方法内部,所有调用的地方都会同步生效 |
| 增强代码可读性 | 方法名可以直观体现功能,代码结构更清晰,逻辑更易理解 |
| 降低代码冗余 | 避免大量重复代码,减少出错概率 |
2. 典型使用场景
只要代码出现重复执行的逻辑,就适合封装成方法。举个例子:
- 场景 1:计算长方形的面积。如果程序中多次需要计算不同长方形的面积,就可以把长方形的面积计算逻辑封装成方法,传入长和宽就能得到结果。
- 场景 2:重复执行的固定流程。比如每天的日程(起床、洗漱、吃早餐、工作),每次需要执行时,直接调用日程方法即可。
3. 案例解析
图片中的
dayPlan()方法就是典型的 “固定流程封装” 场景:
两次调用
dayPlan(),控制台输出了两次完整的日程流程,实现了代码复用。
(3)方法的三种格式详解
Java 方法的核心分为定义和调用两部分,根据是否带参数、是否带返回值,分为三种常见形式:
1. 无参数无返回值方法
这是最简单的方法,没有参数也没有返回值,只执行固定逻辑。
① 定义格式
修饰符 static void 方法名(){ // 方法体:需要执行的代码 }修饰符:这里用public static,和主方法保持一致(同类中直接调用)void:表示这个方法没有返回值方法名:自定义,建议用小驼峰命名,见名知意(比如dayPlan)
② 调用格式
方法名();③ 执行流程
- 程序从主方法
main开始执行 - 遇到
方法名();时,跳转到对应的方法定义处 - 执行方法体里的所有代码
- 方法执行完毕,回到主方法中调用方法的位置,继续执行后面的代码
④ 案例
只调用了一次
dayPlan(),后面直接写了午饭和午休的逻辑,避免了重复代码的同时,也让主方法的逻辑更清晰。
2. 带参数无返回值方法
方法需要接收外部传入的数据,根据传入的数据执行逻辑,但不返回结果。
① 定义格式
修饰符 static void 方法名(数据类型 变量名1, 数据类型 变量名2, ...){ // 方法体:使用传入的变量执行逻辑 }- 括号里的
变量名就是形参(形式参数),相当于方法内部的局部变量,用来接收外部传入的数据。
② 调用格式
方法名(实际值1, 实际值2, ...);- 括号里的
实际值就是实参(实际参数),是调用方法时真正传给方法的数据。
③ 形参与实参的区别与联系
| 维度 | 形参 | 实参 |
|---|---|---|
| 定义位置 | 方法定义的括号内 | 方法调用的括号内 |
| 本质 | 变量,用来接收数据 | 实际的数据(常量 / 变量) |
| 作用 | 声明方法需要接收的数据类型和数量 | 给方法传入具体的执行数据 |
| 联系 | 调用方法时,实参必须和形参的数据类型、数量、顺序完全匹配 |
④ 执行流程
- 主方法执行,遇到方法调用
- 把实参的值传给对应的形参
- 跳转到方法定义处,执行方法体(使用形参的值)
- 方法执行完毕,回到主方法继续执行后续代码
⑤ 案例
运行结果:控制台输出
两数之和为:671,实现了传入两个数并计算和的功能。
3. 带参数带返回值方法
方法接收外部数据,执行逻辑后,会返回一个结果给调用处。
① 定义格式
修饰符 static 返回值类型 方法名(数据类型 变量名1, 数据类型 变量名2, ...){ // 方法体:执行逻辑 return 结果值; // 返回结果,结果值的类型必须和返回值类型一致 }返回值类型:方法返回结果的数据类型,比如int、double、String等return:关键字,用来返回结果,同时结束方法的执行
② 调用格式
带返回值的方法有三种调用方式:
直接调用:调用方法,方法会正常返回值,但不使用变量接收结果,控制台无显示。
getsum(200, 471);赋值调用:用一个变量接收返回值,后续可以使用这个变量
int sum = getsum(200, 471); System.out.println(sum);输出调用:直接在System.out.println()中调用方法,控制台会输出返回的结果
System.out.println(getsum(200, 471));③ 执行流程
- 主方法执行,遇到方法调用
- 实参传给形参,跳转到方法定义处
- 执行方法体逻辑,遇到
return语句 return语句把结果返回给调用处,同时结束方法- 调用处接收返回值(或丢弃),继续执行后续代码
④return语句的注意事项
return后面可以跟参数(结果值),也可以不跟:- 带返回值的方法:
return后面必须跟结果值,且类型和返回值类型一致 - 无返回值的方法(
void):可以写return;,用来提前结束方法,后面不能跟结果值
- 带返回值的方法:
return语句后面不能写其他代码,因为方法执行到return就会结束,后面的代码永远不会执行,编译器会报错(“不可达代码”)
⑤ 案例
运行结果:控制台输出两次
671(赋值调用和输出调用的结果)。
运行结果:控制台输出
2号付钱,因为sum1=415,sum2=852,满足sum1 < sum2的条件。
(4)方法的核心注意事项
- 方法不调用不执行:方法定义后,只有被调用时才会执行,不调用不会运行
- 必须先定义后调用:方法必须先定义在类中,才能被调用,否则会报 “找不到符号” 的编译错误
- 方法不能嵌套定义:方法内部不能再定义另一个方法,所有方法都必须定义在类中,平级存在
- 参数必须匹配:带参数的方法调用时,实参的数据类型、数量、顺序必须和形参完全一致,否则会编译报错
- 方法的编写顺序不影响执行顺序:方法的执行顺序只和调用顺序有关,和定义时的先后顺序无关
void方法不能有返回值:无返回值的方法,不能用return返回结果,否则会编译报错return会终止方法执行:方法执行到return语句时,会立刻结束方法,后续代码不会执行
三、 今日总结
- 方法是封装了独立功能的代码块,核心优势是提高代码复用性和可维护性
- 方法分为三种:无参数无返回值、带参数无返回值、带参数带返回值,每种都有对应的定义和调用格式
- 形参是方法定义时的变量,实参是调用时传入的实际数据,二者必须类型、数量、顺序匹配
- 带返回值的方法有三种调用方式:直接调用、赋值调用、输出调用,
return语句会结束方法执行,且后面不能有不可达代码 - 方法的核心规则:不调用不执行、先定义后调用、不能嵌套定义、参数必须匹配、编写顺序不影响执行顺序