有sum()方法的问题

时间:2017-04-22 05:55:39

标签: java class methods sum

这个问题要求我在addNumber(int numbers)课程中创建sum()NumberStatistics方法的课程。 addNumber方法无法存储任何值。

public class NumberStatistics {

    private int number;
    private int sum;

    public NumberStatistics() {
        this.sum = 0;
    }

    public void addNumber(int numbers) {
        this.number = numbers;
        sum();            
    }

    public int sum() {
        this.sum = this.sum + this.number;
        return this.sum-this.number;
    }
}

主:

public class Main {

    public static void main(String[] args) {
        NumberStatistics stats = new NumberStatistics();
        stats.addNumber(3);
        stats.addNumber(5);
        stats.addNumber(1);
        stats.addNumber(2);
        System.out.println("sum: " + stats.sum());
    }
}

所以我必须做return this.sum-this.number;但是还有其他方法可以达到同样的结果吗?

更新:已修改以修正错误。

2 个答案:

答案 0 :(得分:2)

我会使用这个实现:

public class NumberStatistics {
    private int sum;

    public NumberStatistics() {
        this.sum = 0;
    }

    public void addNumber(int number) {
        this.sum += number;           
    }

    public int getSum() {
        return this.sum;
    }
}

虽然这远不是​​基本计算器的理想实现,但它符合要求The addNumber method can't store any value.如果我们无法存储有关输入数字的任何状态,那么唯一的选择是动态计算总和。因此,我还将sum()方法重命名为getSum(),因为现在它只返回已知的总和。

答案 1 :(得分:0)

您可以添加以下行:

this.sum = this.sum + numbers;
在addNumber方法中

,所以你不需要"数字"变量,在sum方法中只返回this.sum