Heim >Java >javaLernprogramm >Wie kann ich die Referenzübergabe für Grundelemente in Java simulieren?

Wie kann ich die Referenzübergabe für Grundelemente in Java simulieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-16 07:46:02890Durchsuche

How Can I Simulate Pass by Reference for Primitives in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn