【Java方法笔记】3-2 方法的重载
§3-2 方法的重载
方法的重载:在一个类中,有相同的函数名称,但形式参数不同的函数。
方法的重载允许我们在一个类中同时含有多个名称相同的方法。
3-2.1 重载规则与实现理论
方法重载的规则:
- 方法名称相同;
- 参数列表必须不同(个数、类型或参数排列顺序不同);
- 方法的返回类型可相同也可不同;
- 仅仅返回类型不同不足以成为方法的重载。
方法重载的实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等逐个匹配,以选择对应的方法。若匹配失败,则编译器报错。
通过这一点,可以间接实现 Java 方法中的参数默认值。(另一种方法可以在为方法传入空参数时,为参数赋值为常量)
3-2.2 实践
以上一节比大小的方法为例,在此基础上我们将其复制粘贴,但做出部分改动,见下:
public class Compare {
public static void main(String[] args) {
//比大小
int a = max(1,2); //调用第一个方法
double b = max(1.25,2.50); //调用第二个方法
int c = max(2,1,5); //调用第三个方法
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
public static int max(int a, int b) {
int result = -1;
if (a == b) {
System.out.println("Equal");
return 0; //终止方法
}
if (a < b) {
result = b;
} else {
result = a;
}
//返回值必须写在方法体最后
return result;
}
//双精度浮点数作比
public static double max(double a, double b) {
double result = -1;
if (a == b) {
System.out.println("Equal");
return 0; //终止方法
}
if (a < b) {
result = b;
} else {
result = a;
}
//返回值必须写在方法体最后
return result;
}
//三数作比
public static int max(int a, int b,int c) {
int result = -1;
if (a == b && b == c) {
System.out.println("Equal.");
result = a;
} else if (a > b && b > c){
result = a;
} else if (a > b && b == c) {
result = a;
} else if (b > a && a == c) {
result = b;
} else if (b > a && a > c) {
result = b;
} else if (c > a && c == b) {
result = c;
} else if (c > a && c > b) {
result = c;
}
//返回值必须写在方法体最后
return result;
}
}
编译后运行,得结果如图: