方法重载的概念
- 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。
方法重载的案例
上一个方法的使用中,使用的swap方法仅仅适用于int型数据。但如果你想交换两个浮点类型数据该怎么办呢?
解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示:
package com.tedu.cn;
import java.util.Scanner;
//这个类用来测试方法通过值来传递参数
//下面的例子演示按值传递的效果
//该程序创建一个方法,该方法用于交换两个变量
public class Test_Method4 {
public static void main(String[] args) {
swap(2,3);
swap(0.2,0.3);
}
public static void swap(int a,int b){
System.out.println("\t进入swap方法");
System.out.println("\t\t交换前a的值为"+a+",b的值为:"+b);
//交换a与b的值
int temp = a;
a = b;
b = temp;
System.out.println("\t\t交换后的a的值为:"+a+",b的值为:"+b);
}
public static void swap(double a,double b){
double temp = a;
a=b;
b=temp;
System.out.println("\t\t交换后的a的值为:"+a+",b的值为:"+b);
}
}
结果:
如果你调用swap方法时传递的是int型参数,则 int型参数的swap方法就会被调用;
如果传递的是double型参数,则double类型的swap方法体会被调用,这叫做方法重载;
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。
Java编译器根据方法签名判断哪个方法应该被调用。
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。