Java方法重载overload
概念:一个类中的一组方法,他们具有相同的名字,不同的参数列表。
举个栗子,System.out.println()
就是一个重载方法,名字都是println,参数列表不同,这也就保证了System.out.println()
可以打印输出任意类型的值。
public class 方法重载 {
public static void main(String[] args) {
System.out.println();//无论()内是什么类型的都可以输出,只不过匹配不同的类型而已
System.out.println(12);
System.out.println("string");
System.out.println('c');
System.out.println(true);
}
}
输出:
12
string
c
true
自己设计方法重载:
public class overload {
public void put() {
System.out.println("没有携带值");
}
public void put(int value) {
System.out.println("int类型:"+value);
}
public void put(Boolean value) {
System.out.println("Boolean类型:"+value);
}
public void put(char value) {
System.out.println("char类型:"+value);
}
public void put(String number) {
System.out.println("int类型:"+number);
}
//main方法
public static void main(String[] args) {
overload o=new overload();
o.put();
o.put(12);
o.put(true);
o.put('c');
o.put("string");
}
}
输出:
没有携带值
int类型:12
Boolean类型:true
char类型:c
int类型:string
注:JDK1.5版本后提供新写法public void put(int... x)
【动态参数列表,…表动态】
“动”在哪呢?
类型是不变的,动的是个数0~n,它可以是无限个
所以x实质是一个数组,举个栗子。
public class overload {
//动态参数列表
public void put(int... array) {
for(int v:array) {//遍历
System.out.println(v);
}
}
public void put(String... array) {
for(String v:array) {
System.out.println(v);
}
}
public static void main(String[] args) {
overload o=new overload();
o.put(1,2,3);
o.put("刘","瑜","澄");
}
}
输出:
1
2
3
刘
瑜
澄
动态参数列表在方法的参数中只能存在一份,且必须放置在方法参数的末尾【因为它是一个未知大小的数组,没有ending,所以只能在末尾】
举个栗子:
//二维动态列表
//可行
public void put(int[]... array) {
//code
}
//下面是错误的
public void put(int...[] array) {
//code
}