2010-05-03 33 views
0

我有更新計數器(整數值)的問題。 這是類的定義:更新計數器值的問題

public class Item_Actions 
{ 
    private final int MAX_ITEMS = 100; 
    private Item myItem[]; 
    private int counter; 

    public Item_Actions() 
    { 
     myItem = new Item[MAX_ITEMS]; 
     counter++;  
    } 

    //Constructor add item into the menu (Description, type & price of Item) 

    public void addItem(Item itm) 
    { 
     myItem[counter] = itm; 
     counter++; 
    }....... 

現在,每次我打電話的addItem構造從另一個類,計數器始終保持在零。 是什麼導致它,以及如何保存數據裏面?

感謝

+0

是否有任何理由不使用'java.util.List'來存儲您的項目? – 2010-05-03 13:26:51

+2

'addItem'是**不是**構造函數。這是一種方法。順便說一句,所提到的問題在所發佈的代碼和信息中是不可見的。它看起來很好(儘管(real!)構造函數中的'counter ++'是不必要的)。它位於別的地方。更精確。如果可以,請提供[SSCCE](http://sscce.org)。 – BalusC 2010-05-03 13:29:30

+0

感謝您的更正,您是對的。彼得 - 沒有特別的原因,它不是必需的。 – firestruq 2010-05-03 13:49:51

回答

3

在聲明變量counter之前只需插入static關鍵字。那是

private static int counter=0; 
2

計數器應該是static - 要限制實例的數量,因此計數器不應該是一個實例變量。相反,它應該是「全球」 - 即static。 你的數組也應該是static

除了使用計數器和數組,您可以使用ArrayList

這一切都說,避免static字段 - 而是在其他代碼中尋找問題。

+0

對不起,我的壞。刪除該部分。 – Bozho 2010-05-03 13:27:00

+1

這不能解決問題,這隻會改變問題。當他說「構造函數」時,Imho他錯過了。 – BalusC 2010-05-03 13:33:05

+0

嗯..確實..該代碼沒有多大意義。 – Bozho 2010-05-03 13:35:39