一、什么是方法
- 方法(method)是程序中最小的执行单元。
- 重复的代码、具有独立功能的代码可以抽取到方法中。
- 方法可以提高代码的复用性和可维护性。
二、方法的格式
把一些代码打包在一起,用的时候就调用。
1. 方法定义和调用
- 方法定义:把一些代码打包在一起,该过程称为方法定义。
- 方法调用:方法定义后并不是直接运行的,需要手动调用才能执行,该过程称为方法调用。
- 方法必须先定义后调用,否则程序将报错。
2. 基础方法定义和调用
public class Main {
public static void main(String[] args) {
// 方法调用
sing();
}
// 方法定义
public static void sing() {
System.out.println("唱");
}
}
3. 带参方法定义和调用
- 形参:全称形式参数,是指方法定义中的参数。
- 实参:全程实际参数,是指方法调用中的参数。
- 方法调用时,形参与实参必须一一对应,否则程序会报错。
- 示例:
public class Main {
public static void main(String[] args) {
getSum(10, 20); // 实参
}
public static void getSum(int num1, int num2) { // 形参
int result = num1 + num2;
System.out.println(result);
}
}
4. 带返回值方法定义和调用
- 方法的返回值就是方法运行的最终结果。
- 返回值类型为
void
表示无返回值,return语句可以不写。如果要写return,后面不能跟具体的数据。 - 定义:
public static 返回值类型 方法名(参数) { 方法体; return 返回值; }
- 调用:直接调用、赋值调用、输出调用。
- 示例:
public class Main {
public static void main(String[] args) {
// 直接调用
getSum(10, 20, 30);
// 赋值调用
int sum = getSum(10, 20, 30);
System.out.println(sum);
// 输出调用
System.out.println(getSum(10, 20, 30));
}
public static int getSum(int num1, int num2, int num3){
int result = num1 + num2 + num3;
return result;
}
}
三、方法的重载
- 描述:在同一个类中,定义了多个同名的方法,这些同名的方法具有同种功能。每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。
- 简述:同一个类中,方法名相同,参数不同(个数不同、类型不同、
顺序不同【不建议】)的方法。与返回值无关。 - JVM会通过参数的不同来区分同名的方法。
public class Main {
public static void main(String[] args) {
byte b1 = 10;
byte b2 = 20;
sum(b1, b2);
int i1 = 10;
int i2 = 20;
sum(i1, i2);
}
public static void sum(byte num1, byte num2) {
System.out.println("byte");
System.out.println(num1 + num2);
}
public static void sum(int num1, int num2) {
System.out.println("int");
System.out.println(num1 + num2);
}
}
四、方法的值传递
- 方法传递基本数据类型的内存原理:传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值。
-
- 基本数据类型:整数类型、浮点数类型、布尔类型、字符类型
- 方法传递引用数据类型的内存原理:传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值。
-
- 引用数据类型:new出来的数据类型。