Simulation du passage par référence en Java pour les primitives
En C, le passage par référence fournit une référence directe à la variable d'origine, permettant les modifications apportées dans les fonctions à refléter dans la portée appelante. Java, en revanche, utilise exclusivement le passage par valeur pour les primitives, ce qui entraîne la création de copies locales.
Pour obtenir un effet similaire en Java, envisagez ces approches :
1. Passer par référence à l'aide d'objets :
Encapsulez la valeur primitive dans un objet et transmettez-lui une référence. Le code peut modifier directement la variable membre de l'objet.
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. Renvoie la valeur modifiée :
Au lieu d'essayer de modifier l'argument, la fonction peut renvoyer la valeur modifiée, qui peut ensuite être affectée à la variable d'origine.
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 . Classe/Variable membre statique :
Si les fonctions appartiennent à la même classe ou instance, envisagez de stocker la valeur dans une classe ou une variable membre statique, accessible aux deux fonctions.
4 . Hack de tableau à élément unique :
Bien que considéré comme un hack, le passage d'un tableau à élément unique permet de modifier indirectement la valeur dans la portée appelante.
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]); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!