方法重载
来源:互联网 发布:淘宝买化妆品可靠吗 编辑:程序博客网 时间: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)方法重载:屏蔽了不同方法执行的功能相同,却因为参数列表不同,而导致的方法名称不同的情况.
*/
例子二:
做一遍就明白什么是方法重载了.
- 方法重载
- 重载方法
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- 方法重载
- eclipse下修改javaWeb项目的运行地址
- 解决1452- Cannot add or update a child rowa foreign key constraint fails问题
- Spring整合Mybatis
- 创建Person类和对象张三
- java Scanner类
- 方法重载
- Mybatis-Plus代码生成器
- 初识spring
- Python入门(二)——运算符,求值顺序,if/for/while语句,list,tuple,dict,seq,set
- mySQL之补充
- html 解决空格显示问题
- 深究|Elasticsearch单字段支持的最大字符数?
- mysql 分组、 操作查询结果case when then else end用法举例
- 《再探设计模式》装饰者:为什么比继承更灵活?