Das Java Visualization Tool verwendet das Schlüsselwort „this“ an einer scheinbar seltsamen Stelle bei der Erstellung eiJava

Java-Forum
Anonymous
 Das Java Visualization Tool verwendet das Schlüsselwort „this“ an einer scheinbar seltsamen Stelle bei der Erstellung ei

Post by Anonymous »

Ich versuche zu lernen, wie man Arrays von Objekten erstellt. Ich nutze dieses Tool oft, um ein Programm „schrittweise“ zu durchlaufen, um zu sehen, wie Werte initialisiert und aktualisiert werden, und um ein Gefühl für das „Timing“ der Dinge während der Ausführung zu bekommen. Ich hoffe auf ein gewisses Verständnis dafür, was bei der Erstellung eines Arrays von Objekten tatsächlich vor sich geht, auch wenn Sie mit dem Tool, auf das ich verlinkt habe, nicht vertraut sind.
Unten ist ein Code, den ich erstellt habe, um mir etwas über Arrays von Objekten beizubringen:

Code: Select all

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
Wenn ich das Programm von Anfang an durchgehe, komme ich zu Schritt 6, bei dem es sich zum ersten Mal um einen Aufruf des Testklassenkonstruktors handelt. Der Visualizer zeigt Folgendes:
Image

Ich bin nicht sicher, was der Visualizer hier anzeigt; Ich verstehe, dass eine Kopie meiner Instanzvariablen deklariert und (glaube ich) einem Standardwert von 0 zugewiesen wird, bevor sie gemäß dem Konstruktorcode auf 3 initialisiert wird. Aber warum wird auf der „Frames“-Seite das Schlüsselwort this verwendet, um auf die Testinstanz zu verweisen?
Das wird anschließend angezeigt, wenn ich die nächsten Schritte durchführe:
Image

dann
Image

und dann
Image

und schließlich zu
Image

Ich dachte, das Schlüsselwort this wurde (unter anderem?) in Situationen wie der hier verwendeten verwendet:

Code: Select all

public class Test2{
private int myInt;

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

}
wobei dies angibt, welche Variable namens myInt aktualisiert wird.
Ich fand es auch verwirrend, dass der oben visualisierte Konstruktoraufruf den Rückgabetyp void anzeigt, obwohl ich dachte, dass Konstruktoren keine Rückgabetypen haben.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post