我遇到了这个问题,我有一个java文件从另一个文件中获取2个变量,并且应该将它们一起添加并返回求和值。到目前为止,它的工作原理是获取值aFirst和aSecond,但我不确定为什么当它到达sum方法时,值1和2会丢失(返回0)。这是我作业的作业。
public class Pair
{
private double one, two ;
public Pair(double aFirst, double aSecond)
{
double one = aFirst;
double two = aSecond;
}
public double sum()
{
double xys = one + two;
return(xys);
}
}
答案 0 :(得分:12)
您将one
和two
声明为局部变量,遮蔽实例变量。
答案 1 :(得分:6)
问题是构造函数。您正在创建局部变量而不使用类字段
private double one, two ;
public Pair(double aFirst, double aSecond)
{
this.one = aFirst;
this.two = aSecond;
}
你可以在没有“这个”的情况下做到这一点。但是不要把类型放在前面
答案 2 :(得分:0)
当局部范围和类成员中具有相同的变量名时,使用this
来覆盖覆盖情况下的类成员变量。