5 java 方法
5.1 方法的定义
-
介绍:方法是 Java 程序中最小的执行单元,就像一个 “功能盒子”,把实现某个功能的代码封装起来,需要时直接调用,避免重复写代码
-
方法的两个关键步骤:
-
定义方法(创建盒子):先写好方法的代码,告诉计算机这个方法要做什么
注意:必须先定义才能调用,否则程序会报错
-
调用方法(使用盒子):定义好后,需要手动调用方法,它才会执行里面的代码
-
5.2 方法的格式
5.2.1 无参数无返回值方法
- 格式:
public static void 方法名() {
// 方法体(具体功能代码)
}
- 例子:打印 “Hello Method”
public static void sayHello() {
System.out.println("Hello Method!");
}
- 调用:直接写方法名
sayHello(); // 输出:Hello Method!
5.2.2 带参数方法
- 格式:
public static void 方法名(数据类型 参数1, 数据类型 参数2) {
// 方法体(用参数实现功能)
}
- 例子:计算两数之和并打印
public static void sum(int a, int b) {
int result = a + b;
System.out.println("和为:" + result);
}
- 调用:传入对应类型和数量的参数
sum(5, 3); // 输出:和为:8
5.2.3 带返回值方法
- 格式:
public static 数据类型 方法名(参数) {
// 方法体
return 结果; // 结果类型必须与方法声明的返回值类型一致
}
- 例子:计算两数较大值并返回
public static int getMax(int a, int b) {
return a > b ? a : b; // 三元运算符简化代码
}
- 调用:用变量接收返回值或直接使用
int max = getMax(10, 20); // max = 20
System.out.println(getMax(5, 3)); // 直接输出:5
5.2.4 参数的秘密:形参与实参
-
形参:方法定义中的参数(如
int a
),相当于占位符 -
实参:调用方法时传入的具体值(如
5
或变量num
) -
要求:实参的类型和数量必须与形参匹配,否则报错
5.3 方法的重载
5.3.1 什么是方法重载?
-
介绍:在同一个类中,允许存在多个方法名相同但参数不同的方法
-
判断标准:
-
方法名必须相同
-
参数类型或数量不同(与返回值无关)
-
5.3.2 为什么需要重载?
-
原因:避免为类似功能起多个不同的方法名,提高代码可读性
-
例子:计算不同类型数据的和
// 整数相加
public static int sum(int a, int b) {
return a + b;
}
// 双精度浮点数相加
public static double sum(double a, double b) {
return a + b;
}
// 三个整数相加
public static int sum(int a, int b, int c) {
return a + b + c;
}
- 调用:根据传入参数自动匹配对应方法
sum(1, 2); // 调用2个int参数的sum(),返回3
sum(1.5, 2.5); // 调用2个double参数的sum(),返回4.0
sum(1, 2, 3); // 调用3个int参数的sum(),返回6
5.3.3 注意!这些情况不算重载
- 参数类型和数量都相同,仅返回值不同
public static int sum(int a, int b) { ... } // 错误!与下方方法冲突
public static double sum(int a, int b) { ... } // 编译报错,参数相同!
- 方法在不同类中:重载必须在同一个类中
5.4 方法的内存
-
以
main()
方法调用sum()
为例:-
JVM 启动,先加载
main()
方法到内存 “栈” 中,开始执行 -
遇到方法调用
sum(5, 3)
:-
在栈中为
sum()
开辟空间,传入实参5
和3
(赋值给形参a
和b
) -
执行
sum()
中的代码,计算结果8
-
sum()
执行完毕,从栈中销毁,结果返回给调用处(这里没有变量接收,结果直接消失)
-
-
继续执行
main()
后续代码
-