Der Parameter x
enthält eine Referenz
auf das Objekt, das main()
erzeugt hat.
Hier ist eine Abbildung, die zeigt wie das Programm bei der Ausführung aussieht, gerade in dem Moment, wenn die ausgeben() Methode zu starten beginnt. Denken Sie daran, dass Java Call-By-Value verwendet, um Daten an Methoden zu übergeben. Bei Arrayparametern bedeutet dies, dass der Parameter den Wert einer Referenz auf ein Array enthält.
Es gibt nur ein Arrayobjekt, das eine, dass durch die main()
Methode erzeugt wurde.
Wenn die ausgeben()
Methode läuft, hat sie eine Referenz auf dieses
Array in ihrem Parameter x
.
Hier sind einige Details:
ArrayTester
wird mit gestrichelten Linien gezeigt, da es
eine Klassendefinition ist, und kein Objekt.main()
von ArrayTester
läuft.ar1
verweist auf das Arrayobjekt.arrTool
verweist auf ein ArrayTools
-Objekt.ausgeben()
Methode von arrTool
mit ar1
als Parameter aufgerufen wird.x
auf dasselbe
Objekt wie die Variable ar1
.
Jetzt läuft die ausgeben()
Methode, indem sie den Inhalt von
x
verwendet, um auf das Array zu verweisen mit dem sie arbeitet.
Während sie läuft, arbeitet die Methode mit x
genauso
wie der Code der vorherigen Kapitel.
Wenn sie fertig ist, kehrt die Kontrolle zu main()
zurück.
Üblicherweise denken Sie nicht mit einer solchen Detailversesssenheit über diese Dinge nach. Sie würden denken "eine Methode aufrufen, um ein Array auszugeben" und würden schreiben
arrTool.ausgeben( ar1 );
Aber manchmal müssen Sie wirklich wissen, was vor sich geht. Schauen Sie bitte die Abbildung aufmerksam durch und lesen Sie die Details ein paar Mal durch. Wenn Sie diesen Stoff zu schnell durcheilen, riskieren Sie es Konzepte zu verpassen, die für das Verständnis der zukünftigen Themen notwendig sind.