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 print() 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 print() Methode läuft, hat sie eine Referenz auf dieses
Array in ihrem Parameter x.
Hier sind einige Details:
ArrayDemo wird mit gestrichelten Linien gezeigt, da es
eine Klassendefinition ist, und kein Objekt.main() von ArrayDemo läuft.ar1 verweist auf das Arrayobjekt.operate verweist auf ein ArrayOps-Objekt.print() Methode von operate
mit ar1 als Parameter aufgerufen wird.x auf dasselbe
Objekt wie die Variable ar1.
Jetzt läuft die print() 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 über Dinge in einer solchen Detailversesssenheit nach. Sie würden denken "eine Methode aufrufen um ein Array auszugeben" und würden schreiben
operate.print( 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. Wenn Sie durch diesen Stoff eilen, riskieren Sie es Konzepte zu verpassen, die für das Verständnis der zukünftigen Themen notwendig sind.