Как редактировать переменную экземпляра изнутри метода? на нестатическую переменную sum нельзя ссылаться из статического контекста

#java #object #methods #static #instance

#java #объект #методы #статический #экземпляр

Вопрос:

 public class Sum{

    int sum = 0;

    public static void sum_do(String array[]){
        int tmpi = 0;
        for (int i=0; i<array.length;   i){
            tmpi = Integer.parseInt(array[i]);
            sum  = tmpi;
        }
    }
}
  

Я хотел бы изменить переменную sum, но я не могу этого сделать.

 ./Sum.java:9: error: non-static variable sum cannot be referenced from a static context
                        sum  = tmpi;
                        ^
1 error
  

Я действительно новичок в Java, так что это, вероятно, очень простой материал

Комментарии:

1.Вы не можете ссылаться на переменную экземпляра напрямую, если она не является статической. Вы можете либо объявить переменную экземпляра sum как статическую, чтобы получить к ней доступ внутри метода. Пример: static int sum = 0; ИЛИ вам нужно создать объект вашего класса для доступа к этой переменной экземпляра, например, Sum mySum = new Sum(); mySum.sum = tmpi;

Ответ №1:

вы пытаетесь получить нестатическую переменную в статическом контексте, попробуйте:

 static int sum = 0;