方法重载

来源:互联网 发布:淘宝买化妆品可靠吗 编辑:程序博客网 时间:2024/06/06 02:56

方法重载中,形参的个数最好不要超过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)方法重载:屏蔽了不同方法执行的功能相同,却因为参数列表不同,而导致的方法名称不同的情况.

*/

 

例子二:


 

做一遍就明白什么是方法重载了.