先不用方法重载,写个程序,分析程序存在的缺点
public class Test {
public static void main(String[] args) {
//调用方法
int result1=sumInt(1,2);
System.out.println(result1);
double result2=sumDouble(1.0,2.0);
System.out.println(result2);
long result3=sumLong(1L,2L);
System.out.println(result3);
}
//定义一个方法,可以计算两个int类型数据的和
public static int sumInt(int a,int b){
return a+b;
}
//定义一个方法,可以计算两个double类型数据的和
public static double sumDouble(double a,double b){
return a+b;
}
//定义一个方法,可以计算两个long类型数据的和
public static long sumLong(long a,long b){
return a+b;
}
}
运行结果如下图
虽然上面代码运行没问题,但是实际来说,上面代码非常不方便,实现三个相似的功能,但是却要记三个方法名,然后调用三个不同的方法,而且代码不美观.
所以有一种机制,使用这些方法(功能相似)就像使用一个同一个方法一样,不需要记忆更多的方法名,编写代码比较方便且美观一方法重载.
写一个方法重载的程序,体验一下方法重载的优点
public class Test {
public static void main(String[] args) {
//调用方法的时候就像在使用一个方法一样
//参数的类型不同,对于调用的方法不同
//此时区分方法不再依靠方法名了,依靠的是数据类型.
System.out.println(sum(1,2));
System.out.println(sum(1.0,2.0));
System.out.println(sum(1L,2L));
}
//以下三个方法构成了方法重载
public static int sum(int a,int b){
return a+b;
}
public static double sum(double a,double b){
return a+b;
}
public static long sum(long a,long b){
return a+b;
}
}
运行结果如下图,还是一样
简单了解方法重载后,我们需要知道使用方法重载的注意事项
方法重载:
1、方法重载又被称为:overload
2、什么时候考虑使用方法重载?
*功能相似的时候,尽可能让方法名相同.
[但是:功能不同的/不相似的时候,尽可能让方法名不同.]
3、什么条件满足之后构成了方法重载?
*在同一个类当中
*方法名相同
*参数列表不同:
-数量不同
-顺序不同
-类型不同
public class Test {
public static void main(String[] args) {
m1();
m1(10);
m2(1,2.0);
m2(2.0,1);
m3(10);
m3(3.0);
}
//以下两个方法构成重载(数量不同)
public static void m1(){}
public static void m1(int a){}
//以下两个方法构成重载(顺序不同)
public static void m2(int a,double b){}
public static void m2(double a,int b ){}
//以下两个方法构成重载(数据类型不同)
public static void m3(int x){}
public static void m3(double x){}
}
4、方法重载跟什么有关系,和什么没关系?
*方法重载和方法名,参数列表有关系
//以下不是方法重载,叫方法重复(形参中取决定作用的不是变量的名字,是参数的数据类型),所以编译错误
public static void m4(int a, int b){}
public static void m4(int b,int a){}
*方法重载和返回类型无关
public static void x(){}
public static int x(){return 1;}
这两个虽然返回类型不同,但是x()在这个Test类中已经被void x()已经是定义了,下面int x()即无效,所以这两个不能说是方法重载,编译错误.
*方法重载和修饰符列表无关
void y(){}
public static void y(){}
这两个也不能说是方法重载.
以上说了方法重载的基本知识,下面我们就来看一下方法重载的具体应用
public class Test {
public static void main(String[] args) {
U.p(10);
U.p(false);
U.p("abc");
U.p(3.0);
}
}
class U{
public static void p(int b){
System.out.println(b);
}
public static void p(long b){
System.out.println(b);
}
public static void p(float b){
System.out.println(b);
}
public static void p(double b){
System.out.println(b);
}
public static void p(boolean b){
System.out.println(b);
}
public static void p(char b){
System.out.println(b);
}
public static void p(String b){
System.out.println(b);
}
}
运行结果如下
有关方法重载就浅谈到这里了,goobye.



