Java重载
2020-03-08 本文已影响0人
风雪_夜归人
重载(Overlaod):表示两个或多个方法名字相同,但方法参数不同。
代码:
-
普通方法重载
public class OverLoadTest {
public int add(int a,int b){
return a + b;
}
public int add(int a,int b,int c){
return a + b + c;
}
public static void main(String[] args) {
OverLoadTest overLoadTest = new OverLoadTest();
int value = overLoadTest.add(3,5);
int value1 = overLoadTest.add(3,5,8);
System.out.println("两个参数的add方法的值:" + value);
System.out.println("三个参数的add方法的值:" + value1);
}
}
----------------------------------------------------------------------------------------、
结果:
两个参数的add方法的值:8
三个参数的add方法的值:16
方法中也可以嵌套重载的方法:
public class OverLoadTest {
public int add(int a,int b){
return a + b;
}
public int add(int a,int b,int c){
System.out.println("在三参数方法中调用重载的两参数方法的值:" + add(a,b));
return a + b + c;
}
public static void main(String[] args) {
OverLoadTest overLoadTest = new OverLoadTest();
int value = overLoadTest.add(3,5);
System.out.println("两个参数的add方法的值:" + value);
int value1 = overLoadTest.add(3,5,8);
System.out.println("三个参数的add方法的值:" + value1);
}
}
----------------------------------------------------------------------------------------
结果:
两个参数的add方法的值:8
在三参数方法中调用重载的两参数方法的值:8
三个参数的add方法的值:16
-
构造方法重载
public class ConstructorOverload {
public ConstructorOverload(){
System.out.println("这是无参构造方法");
}
public ConstructorOverload(int a){
System.out.println("这是有1个参数的构造方法,参数值为:"+ a);
}
public static void main(String[] args) {
ConstructorOverload constructorOverload = new ConstructorOverload();
ConstructorOverload constructorOverload1 = new ConstructorOverload(4);
}
}
----------------------------------------------------------------------------------------
结果:
这是无参构造方法
这是有1个参数的构造方法,参数值为:4
构造 方法中也可以嵌套重载的方法:
public class ConstructorOverload {
public ConstructorOverload(){
this(1);
System.out.println("这是无参构造方法");
}
public ConstructorOverload(int a){
System.out.println("这是有1个参数的构造方法,参数值为:"+ a);
}
public static void main(String[] args) {
ConstructorOverload constructorOverload = new ConstructorOverload();
ConstructorOverload constructorOverload1 = new ConstructorOverload(4);
}
}
----------------------------------------------------------------------------------------
结果:
这是有1个参数的构造方法,参数值为:1
这是无参构造方法
这是有1个参数的构造方法,参数值为:4
注意点:
this必须为构造方法第一句,不然就会报错如下图
Error:(7, 13) java: 对this的调用必须是构造器中的第一个语句