方法的理解
方法(Method)是封装一段具有特定业务逻辑功能的代码段,给这段代码起一个名称,然后通过这个名称可以反复执行这段代码。
为什么需要方法
以银行 ATM 系统为例,如果将所有功能都堆积在 main 方法中:
void main() {
// 存款
// 取款
// 查询余额
// 转账
}Code language: JavaScript (javascript)
这样的代码存在明显问题:
| 问题 | 说明 |
|---|---|
| 可读性差 | 所有逻辑混在一起,难以快速定位某个功能 |
| 复用困难 | 取款功能在多处需要,只能复制粘贴代码 |
| 维护成本高 | 修改取款逻辑需要找到每一处复制的代码逐一修改 |
| 协作困难 | 多人开发时容易互相覆盖代码 |
使用方法拆分后的结构
public static void main(String[] args) {
// 调用方法
deposit();
withdraw();
checkBalance();
transfer();
}
// 存款
public static void deposit() {
// 存款业务逻辑
}
// 取款
public static void withdraw() {
// 取款业务逻辑
}
// 查询余额
public static void checkBalance() {
// 查询余额业务逻辑
}
// 转账
public static void transfer() {
// 转账业务逻辑
}Code language: JavaScript (javascript)
方法的好处
| 好处 | 说明 |
|---|---|
| 代码结构清晰 | 每个方法只负责一件事,逻辑一目了然 |
| 提高复用性 | 同一段功能通过方法名反复调用,无需重复编写 |
| 便于维护 | 修改功能只需改方法内部,所有调用处自动生效 |
| 便于协作 | 不同人负责不同方法,互不干扰 |
| 便于调试 | 可以单独测试方法的正确性 |
方法的定义格式
修饰符 返回值类型 方法名(参数列表) {
方法体;
return 返回值; // 如果返回值类型为 void,则不需要 return
}Code language: JavaScript (javascript)
| 组成部分 | 说明 | 示例 |
|---|---|---|
| 修饰符 | 访问权限和其他修饰 | public static |
| 返回值类型 | 方法执行后返回的数据类型,无返回值用 void | int、String、void |
| 方法名 | 调用时使用的名称 | deposit、withdraw |
| 参数列表 | 接收外部传入的数据,可无参数 | (int amount)、() |
| 方法体 | 具体的业务逻辑代码 | { ... } |
return | 返回结果并结束方法 | return total; |
简单示例
// 定义一个方法:计算两个数的和
public static int add(int a, int b) {
return a + b;
}
// 调用方法
public static void main(String[] args) {
int result = add(3, 5);
System.out.println(result); // 输出 8
}Code language: JavaScript (javascript)
方法的调用过程
- 程序执行到方法调用语句时,跳转到被调用的方法
- 将实参传递给形参
- 执行方法体中的代码
- 遇到
return或方法体结束,返回调用处继续执行
注意:方法名应遵循小驼峰命名规范(首字母小写,后续单词首字母大写),做到见名知意。方法体应尽量保持短小,一个方法只做一件事。