Eine gute Antwort wäre:

Ja.

Abbildung des Programmablaufs

Es sieht so aus, als gäbe es hier einen Widerspruch:

Es gibt tatsächlich keinen Widerspruch hier. Denken Sie daran, dass ein Array ein Objekt ist. Wenn ein Objekt ein Parameter ist, bekommt die aufgerufene Methode eine Referenz auf das Objekt, nicht eine Kopie des Objekts.

In dem Beispiel, bekommt die setElementZero() Methode eine Referenz auf ein Arrayobjekt. Da der Parameter x auf ein Array verweist, kann die Methode das Array ändern, indem sie x verwendet. Die Abbildung zeigt das.

Das ist Call-By-Value, da wenn die Methode arrAendern.setElementZero(arr, 0) ausgeführt wird, der Parameter x der Methode setElementZero() eine Kopie des Werts bekommt, der in der Variablen arr enthalten ist, und dieser Wert ist eine Referenz auf das Array.


FRAGE 7:

Die Methode setElementZero() hat eine Referenz auf das Array. Kann sie die einzelnen Arrayelemente ändern?

Inhaltsverzeichnis