2017-04-22 60 views
0

問題要求我在NumberStatistics類中有addNumber(int numbers)sum()方法。 addNumber方法不能存儲任何值。sum()方法有問題

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

假設您需要一個整數數組來存儲您添加的數字。 'amountOfNumbers'的用途是什麼? –

+0

@RajithPemabandu抱歉包含'amountOfNumbers'.It是另一部分。 –

回答

0

您可以添加一行:

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

,使您免除對於「數字」變量的需要,在和方法只是返回this.sum

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(),因爲現在它只是返回已知的總和。

+0

我很困惑沒有存儲和不存儲的價值。你能舉一個存儲價值的例子嗎? 如果我們使用'sum',而不是'this.sum',那麼它會存儲這個值嗎? –

+0

用您的真實需求更新您的問題。 –