Как вы используете внутренние статические переменные в Java? - PullRequest
2 голосов
/ 13 декабря 2011

Есть ли способ использовать внутренние статические переменные в Java?например, возьмите этот код C:

void increment(){
    static int i = 0;
    i++;
    printf("%i",i);
}

Как бы я сделал это на Java?

Ответы [ 2 ]

6 голосов
/ 13 декабря 2011

Java не имеет прямого эквивалента - все состояния, которые вы хотите сохранить при вызовах методов, должны храниться в полях, а не в локальных переменных. Таким образом, вы можете иметь это:

private int counter = 0;

public void increment() {
    counter++;
    System.out.println(counter);
}

... но, конечно, другие методы в том же классе также имеют доступ к counter.

0 голосов
/ 13 декабря 2011

для той же цели вам придется переписать код в соответствии со стандартом Java.объявить переменную вне метода.Он не должен быть статическим, если вы просто хотите получить доступ внутри метода.

int i = 0;
void increment(){
    i++;
    System.out.println(i);
}
...