1、方法 重载
使用方法重载时,多个方法可以使用不同的参数使用相同的名称:
例如:
int myMethod(int x)
float myMethod(float x)
double myMethod(double x, double y)
下面的示例是两个两种不同类型数字的方法:
例如:
static int plusMethodInt(int x, int y) {
return x + y;
}
static double plusMethodDouble(double x, double y) {
return x + y;
}
public static void main(String[] args) {
int myNum1 = plusMethodInt(8, 5);
double myNum2 = plusMethodDouble(4.3, 6.26);
System.out.println("int: " + myNum1);
System.out.println("double: " + myNum2);
}
与其定义应该执行相同操作的两个方法,不如重载一个方法。
在下面的示例中,我们重载了plusMethod
方法,使其同时适用于int
和double
:
例如:
static int plusMethod(int x, int y) {
return x + y;
}
static double plusMethod(double x, double y) {
return x + y;
}
public static void main(String[] args) {
int myNum1 = plusMethod(8, 5);
double myNum2 = plusMethod(4.3, 6.26);
System.out.println("int: " + myNum1);
System.out.println("double: " + myNum2);
}
注意:只要参数的数量或类型不同,多个方法就可以具有相同的名称。
2、常见使用场景
方法重载可以让程序员根据需要使用相同的方法名称来执行不同的操作,增强了代码的可读性和灵活性。
1)处理不同数量的参数
如果一个方法的功能类似,但接受的参数数量不同,可以通过方法重载来实现。
public class Main {
public void print(String message) {
System.out.println(message);
}
public void print(String message, int times) {
for (int i = 0; i < times; i++) {
System.out.println(message);
}
}
public static void main(String[] args) {
// Create an instance of the Main class
Main obj = new Main();
// Call the print methods
obj.print("Hello");
obj.print("World!", 3);
}
}
2)处理不同类型的参数
当方法需要处理不同类型的参数时,可以通过重载来实现。
public class Main {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public static void main(String[] args) {
// Create an instance of the Main class
Main obj = new Main();
// Call the add methods
int intResult = obj.add(5, 3);
double doubleResult = obj.add(2.5, 3.7);
System.out.println("Integer addition: " + intResult);
System.out.println("Double addition: " + doubleResult);
}
}
3)处理不同类型顺序的参数
在某些情况下,方法的参数类型相同,但顺序不同,可以通过方法重载来处理。
public class Main {
public void convert(int a, double b) {
System.out.println("Int and Double conversion");
}
public void convert(double a, int b) {
System.out.println("Double and Int conversion");
}
public static void main(String[] args) {
// Create an instance of the Main class
Main obj = new Main();
// Call the convert methods
obj.convert(5, 3.14);
obj.convert(2.5, 3);
}
}