小代码,价值不携带

时间:2011-10-02 04:29:34

标签: java variables

我遇到了这个问题,我有一个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);
    }
}

3 个答案:

答案 0 :(得分:12)

您将onetwo声明为局部变量,遮蔽实例变量。

答案 1 :(得分:6)

问题是构造函数。您正在创建局部变量而不使用类字段

private double one, two ;
public Pair(double aFirst, double aSecond)
{
    this.one = aFirst;
    this.two = aSecond;
}

你可以在没有“这个”的情况下做到这一点。但是不要把类型放在前面

答案 2 :(得分:0)

当局部范围和类成员中具有相同的变量名时,使用this来覆盖覆盖情况下的类成员变量。