在本文中,您将了解方法重载以及如何借助示例在Java中实现重载。
在Java中,如果两个或多个方法的参数不同(不同数量的参数,不同类型的参数或两者都不同),则它们可以具有相同的名称。这些方法称为重载方法,此功能称为方法重载。例如:
void func() { ... }
void func(int a) { ... }
float func(double a) { ... }
float func(int a, float b) { ... }
在这里,func()方法是重载的。这些方法具有相同的名称,但是接受不同的参数。
请注意,这些方法的返回类型不同。 重载方法可以具有不同的返回类型,也可以不具有不同的返回类型,但它们接受的参数必须不同。
为什么方法重载?
假设您必须执行给定数字的加法运算,但是可以有任意数量的参数(为简单起见,可以说2个或3个参数)。
为了完成任务,可以分别为两个和三个参数创建两个方法sum2num(int,int)和sum3num(int,int,int)。但是,其他程序员以及您将来可能会感到困惑,因为这两种方法的行为相同,但名称不同。
完成此任务的更好方法是重载方法。并且,根据传递的参数,调用其中一个重载方法。这有助于提高程序的可读性。
如何在Java中执行方法重载?
以下是执行方法重载的不同方法:
1.通过更改参数数量来重载
class MethodOverloading {
private static void display(int a){
System.out.println("参数: " + a);
}
private static void display(int a, int b){
System.out.println("参数: " + a + " 和 " + b);
}
public static void main(String[] args) {
display(1);
display(1, 4);
}
}
输出:
参数: 1
参数: 1 和 4
2.通过更改参数的数据类型
class MethodOverloading {
//此方法接受int
private static void display(int a){
System.out.println("得到了整数数据.");
}
//此方法接受String对象
private static void display(String a){
System.out.println("得到了String对象。");
}
public static void main(String[] args) {
display(1);
display("Hello");
}
}
输出:
得到了整数数据
得到了String对象。
在这里,两个重载方法都接受一个参数。但是,一个接受int类型的参数,而另一个接受String对象。
class HelperService {
private String formatNumber(int value) {
return String.format("%d", value);
}
private String formatNumber(double value) {
return String.format("%.3f", value);
}
private String formatNumber(String value) {
return String.format("%.2f", Double.parseDouble(value));
}
public static void main(String[] args) {
HelperService hs = new HelperService();
System.out.println(hs.formatNumber(500));
System.out.println(hs.formatNumber(89.9934));
System.out.println(hs.formatNumber("550"));
}
}
运行该程序时,输出为:
500
89.993
550.00
注意:在Java中,您还可以用类似于方法的方式重载构造函数。
推荐相关: Java构造函数重载
注意事项
如果两个或多个方法接受不同的参数,则它们在同一个类中可以具有相同的名称。 此功能称为方法重载。
方法重载可以通过以下任一方式实现:
更改参数数量。
或更改参数的数据类型。
不能通过只更改方法的返回类型来实现方法重载。
Java String charAt() Java String getBytes()
展开全部