2013-02-09 4 views
0

Java новичок здесь! Мне нужно создать Java-метод, который поддерживает общее количество переданных ему значений. Однако, если я использую локальную переменную и продолжаю ее инициализировать, я потеряю свой текущий баланс. Есть ли способ обойти это?Локальная переменная не инициализирована catch-22

ответ

2

Используйте переменную-член класса. Если вы хотите подсчитать значения, переданные всем объектам класса, используйте статическую переменную.

2

Да .. объявить поле.

public class Summation{ 

    private int total; 

    public void sumUp(int n){ 
     total += n; 
    } 
} 

В случае, если вы заинтересованы в других языках, таких как C/C++ вы можете сделать это:

void sumUp(int n){ 
    static int total = 0; 
    total+=n; 

} 

Это гарантирует, что total объявляется один раз, и добавляет его на последующих вызовах до sumUp. Поскольку Java объектно-ориентированная, это недопустимо.

0

Well Lews уже ответил на это. Но поскольку вы новичок, пожалуйста, также поймите логику, лежащую в ее основе. Вся локальная переменная хранится в стеке, который уничтожается, когда поток выходит из метода, а переменная экземпляра хранится в куче, которая останется на всю жизнь жизни объекта. Это должно помочь вам понять другие основы java

Смежные вопросы