Инструмент визуализации Java использует ключевое слово «this» в, казалось бы, странном месте во время создания массива оJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Инструмент визуализации Java использует ключевое слово «this» в, казалось бы, странном месте во время создания массива о

Сообщение Anonymous »

Я пытаюсь научиться создавать массивы объектов. Я часто использую этот инструмент, чтобы помочь мне «пошагово» пройти программу, чтобы увидеть, как инициализируются и обновляются значения, а также почувствовать «время» событий во время выполнения. Я надеюсь на некоторое понимание того, что на самом деле происходит во время создания массива объектов, даже если вы не знакомы с инструментом, на который я дал ссылку.
Ниже приведен код, который я создал, чтобы научиться работать с массивами объектов:

Код: Выделить всё

1 public class Test {
2      int instanceVar;
3      public Test(){
4         instanceVar = 3; //just for example
5      }
6      public static void main(String[] args) {
7         Test[] testArr = new Test[2];
8         for (int k = 0; k < testArr.length; k++){
9            testArr[k] = new Test();
10        }//ends loop filling array of Test Objects with Test Objects
11
12
13     }//ends main method
14 }//ends program
Когда я прохожу программу с самого начала, я перехожу к шагу 6, который представляет собой первый вызов конструктора тестового класса. Визуализатор показывает следующее:
Изображение

Я не уверен, что здесь показывает визуализатор; Я понимаю, что копия моей переменной экземпляра объявлена ​​и (я думаю) ей присвоено значение по умолчанию 0, прежде чем инициализировать ее значением 3 в соответствии с кодом конструктора. Однако, почему с точки зрения «кадров» ключевое слово this используется для указания на тестовый экземпляр?
Вот что показано потом, когда я прохожу следующие несколько шагов:
Изображение

затем
Изображение

а затем
Изображение

и, наконец, чтобы
Изображение

Я думал, что ключевое слово this использовалось (среди прочего?) в ситуациях, подобных этой:

Код: Выделить всё

public class Test2{
private int myInt;

public Test2(int myInt){
this.myInt = myInt;
}

}
где this указывает, какая переменная с именем myInt обновляется.
Меня также сбивает с толку то, что вызов конструктора, показанный выше, показывает возвращаемый тип void, хотя я думал, что у конструкторов нет возвращаемых типов.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... ring-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»