Simulieren der Referenzübergabe in Java für Grundelemente
In C stellt die Referenzübergabe einen direkten Verweis auf die ursprüngliche Variable bereit und ermöglicht so vorgenommene Änderungen innerhalb von Funktionen, die im aufrufenden Bereich widergespiegelt werden sollen. Java hingegen verwendet ausschließlich die Wertübergabe für Grundelemente, was zur Erstellung lokaler Kopien führt.
Um einen ähnlichen Effekt in Java zu erzielen, ziehen Sie die folgenden Ansätze in Betracht:
1. Referenzübergabe mithilfe von Objekten:
Kapseln Sie den Grundwert in einem Objekt und übergeben Sie eine Referenz darauf. Der Code kann die Mitgliedsvariable des Objekts direkt ändern.
class Toy { public int toyNumber; } void play(Toy toy){ System.out.println("Toy number in play " + toy.toyNumber); toy.toyNumber++; System.out.println("Toy number in play after increment " + toy.toyNumber); }
2. Den geänderten Wert zurückgeben:
Anstatt zu versuchen, das Argument zu ändern, kann die Funktion den geänderten Wert zurückgeben, der dann der ursprünglichen Variablen zugewiesen werden kann.
int play(int toyNumber){ System.out.println("Toy number in play " + toyNumber); toyNumber++; System.out.println("Toy number in play after increment " + toyNumber); return toyNumber }
3 . Klasse/statische Mitgliedsvariable:
Wenn die Funktionen zur gleichen Klasse oder Instanz gehören, sollten Sie erwägen, den Wert in einer Klasse oder statischen Mitgliedsvariablen zu speichern, auf die beide Funktionen zugreifen können.
4 . Single-Element-Array-Hack:
Obwohl es sich um einen Hack handelt, ermöglicht die Übergabe eines Single-Element-Arrays eine indirekte Möglichkeit, den Wert im aufrufenden Bereich zu ändern.
void play(int[] toyNumber) { System.out.println("Toy number in play" + toyNumber[0]); toyNumber[0]++; System.out.println("Toy number in play after increment" + toyNumber[0]); }
Das obige ist der detaillierte Inhalt vonWie kann ich die Referenzübergabe für Grundelemente in Java simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!