Почему я пытаюсь использовать For l oop array.length, предоставьте мне ошибку - PullRequest
1 голос
/ 26 апреля 2020

Привет, я пытался использовать это простое значение для l oop, используя number.length, но оно дало мне эту ошибку:

non static variable cannot be referenced from a static context

Вот код:

public class Sort_Array {
    int number[] =new int []{8,5,6,6,7,9,1};
    public static void main(String[] args){
        for (int i = 1 ;  i<number.length; i++){

        }
    }
}

Можете ли вы помочь мне, пожалуйста.

Ответы [ 3 ]

1 голос
/ 26 апреля 2020

Вы можете переместить number внутри основного метода. main метод is stati c и не может получить доступ к нестатичным c переменным; номер не был определен как stati c.

public class Sort_Array {
  public static void main(String[] args) {
    int number[] = new int[] { 8, 5, 6, 6, 7, 9, 1 };
    for (int i = 1; i < number.length; i++) {

    }
  }
}

Если вы решили сделать number stati c, сделайте следующее:

public class Sort_Array {
  static int number[] = new int[] { 8, 5, 6, 6, 7, 9, 1 };
  public static void main(String[] args) {
    for (int i = 1; i < number.length; i++) {

    }
  }
}
1 голос
/ 26 апреля 2020

изменить

    int number[] =new int []{8,5,6,6,7,9,1};

на

    static int number[] =new int []{8,5,6,6,7,9,1};
0 голосов
/ 26 апреля 2020

Ссылка не может быть сделана с c на нестатический c метод. Чтобы было понятно, go через различия ниже.

  • Переменные Stati c - это переменные класса, которые принадлежат классу, и изначально был создан только один экземпляр.
  • non-stati c переменные инициализируются каждый раз, когда вы создаете объект для класса.

Если вы поместите mov на экран ie в телевизоре, вы определите его как Мов ie, не зная, как называется мов ie. Но этот mov ie в телевизоре является примером mov ie. Так что все фильмы можно транслировать по телевизору. И mov ie, который вы видите, транслируется только в определенное время c.

В мире OO вы определяете класс, а внутри класса вы определяете поле типа Color. Когда создается экземпляр класса (когда вы создаете указанный экземпляр c), память зарезервирована для цвета, и вы можете присвоить этому указанному экземпляру c цвет. Поскольку эти атрибуты определены c, они не являются c.

Таким образом, вам нужно сделать number[] как статус c для доступа внутри основного метода

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