方法重载
方法重载中,形参的个数最好不要超过5个,因为超过5个,赋值的时候赋值顺序就可能发生错误,从而导致,运算错误.
判断方法重载的方法: "两同一不同";
两同: 1.同一个类中; 2.相同的方法名称.
一不同: 参数列表不同.
因为:如果参数列表相同和方法名相同,那么方法标签就相同了,如果方法标签相同了,编译器就会报错. 所以只要 在同一类和相同方法名相同的,只要参数列表不同就为重载;
参数列表包括: 参数类型,参数个数,参数顺序. 这三个属性有一个不同,那么参数列表就不同.
参数列表不同的原因: 参数个数不同 , 参数类型不同,参数顺序不同.
参数列表 与 参数变量名没关系 , 也就是参数变量名是否相同不能判断参数列表是否相同,也不能判断方法是否重载;
方法重载的例子:
例子一:
/*
需求:方法的重构设计.
*/
public classMethodDome
{
/* 重构之前
//int相加:
publicstatic int Intsum(int a ,int b)
{
intsum = a + b ;
returnsum ;
}
//double相加:
publicstatic double Doublesum(double a,double b)
{
doublesum = a + b ;
returnsum ;
}
publicstatic void main(String[] args)
{
//int类型的两个数相加;
intnumber1 = 1 ;
intnumber2 = 2 ;
intsum1 = MethodDome.Intsum(number1,number2);
System.out.println(sum1);
//double类型的两个数相加;
doublenumber3 = 1.0;
doublenumber4 = 2.0;
doublesum2 = MethodDome.Doublesum(number3,number4);
System.out.println(sum2);
}
*/
/*重构之后*/
//int类型相加:
public static int sum(int a,int b) //将这个方法去除之后,int number1 和 number2 依然可以算出结果,因为 number1 ,number2 被转换为 double类型的了,然后进入doublesum(double a ,double b)运算.
{
returna + b ;
}
//double类型相加:
public static double sum(double a,double b) //将这个方法去除之后,double number3 和 double number4不能算出结果,因为 number3 ,number4 是double类型的,无法进入int sum(int a,int b)中运算,因为 double > int.
{
returna + b ;
}
publicstatic void main(String[] args)
{
intnumber1 = 1 ;
intnumber2 = 2 ;
doublenumber3 = 1.0 ;
doublenumber4 = 2.0 ;
intsum1 = MethodDome.sum(number1,number2);
doublesum2 = MethodDome.sum(number3,number4);
System.out.println(sum1);
System.out.println(sum2);
}
}
/*
小结:
1)不管是整型还是小数型,他们的方法执行的功能是一样的,都是执行相加的操作,而且他们的方法都在同一个类中,所以可以方法重载,把他们换成相同名字的方法.
2)方法重载:屏蔽了不同方法执行的功能相同,却因为参数列表不同,而导致的方法名称不同的情况.
*/
例子二:
做一遍就明白什么是方法重载了.