проблема с обновлением значения счетчика - PullRequest
0 голосов
/ 03 мая 2010

У меня возникла проблема с обновлением счетчика (целочисленное значение). это определения класса:

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 из другого класса, счетчик всегда остается равным нулю. Чем это вызвано и как сохранить данные внутри?

спасибо

Ответы [ 2 ]

3 голосов
/ 03 мая 2010

Просто вставьте ключевое слово static перед объявлением переменной counter. Это

 private static int counter=0;
2 голосов
/ 03 мая 2010

Счетчик должен быть static - вы хотите ограничить количество экземпляров, поэтому счетчик не должен быть переменной экземпляра. Вместо этого оно должно быть «глобальным», т. Е. static. Ваш массив также должен быть static.

Вместо использования счетчика и массива вы можете использовать ArrayList.

При всем этом избегайте полей static - вместо этого ищите проблему в другом коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...