这个问题要求我在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;
但是还有其他方法可以达到同样的结果吗?
更新:已修改以修正错误。
答案 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