在下面的程序中,我试图通过传递参数来重载方法,但两种方法的输出是相同的
public class A
{
int a = 11;
int b = 20;
static int c = 0;
public void A1(){
c = a+b;
}
public void A1(int a,int b){
c = this.a+this.b;
}
public static void main(String[] args){
A a = new A();
a.A1();// this should give 31
System.out.print(c);
a.A1(3,46);// this should give 49
System.out.print(c);
}
}
OUTPUT:两者的输出均为31。
即使我试图超载,两者的输出也是一样的。
答案 0 :(得分:3)
在
public void A1(int a,int b){
c = this.a+this.b;
}
您忽略了传递给方法的参数,而是添加实例变量this.a
和this.b
。
将其更改为
public void A1(int a,int b){
c = a+b;
}
为了添加两个参数。
答案 1 :(得分:0)
在此代码中:
public void A1(int a,int b){
c = this.a+this.b;
}
您正在使用this
前缀。这意味着您使用的是类字段,而不是参数。这里的参数将被省略。
答案 2 :(得分:0)
您使用的是关键字this
。
这可以得到你期望的结果。
public void A1(int a,int b){
c = a+b;
}
此处int a
和int b
会隐藏实例字段a
和b
。通过使用this
关键字,您可以获取这些隐藏的字段。