再谈方法
1.方法的重载(同名,但针对的数据类型不同,应用情况不完全相同)
(1)概念
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
“两同一不同”:
①同一个类、相同方法名。
②参数列表不同:参数个数不同、参数类型不同
(2)特点
与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。
(3)重载举例
//返回两个整数的和
int add(int x.int y){return x+y;}
//返回三个整数的和
int add(int x,int y, int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
(4)判断是否是重载
跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系
(5)在通过对象调用方法时,如何确定某一个指定的方法:
方法名---->参数列表
代码:
public class OverLoadTest {
public static void main(String[] args) {
OverLoadTest test = new OverLoadTest();
test.getSum(1, 2);
}
// 如下的4个方法构成了重载
// public void getSum(int i, int j) {
// System.out.println("1");
// }//注释掉之后不报错,会自动类型提升,选取其他结构
public void getSum(double d1, double d2) {
System.out.println("2");
}
public void getSum(String s, int i) {
System.out.println("3");
}
public void getSum(int i, String s) {
System.out.println("4");
}
// 无法构成重载。
// public void getSum(int i, int j) {
// return 0;
// }
// 也无法构成重载,数据类型重复
// public void getSum(int m, int n) {
//
// }
}
输出:
2