Java Pass-by-Value and Reference
Dans le code Java fourni, la variable toyNumber est transmise par valeur à play() méthode. Cela signifie qu'une copie de la variable est créée dans la méthode et que toutes les modifications apportées au sein de la méthode ne sont pas reflétées dans la variable d'origine. Il en résulte que le résultat montre que le toyNumber dans main() reste inchangé après sa modification dans la méthode play().
Pour obtenir l'équivalent du passage par référence pour les primitives en Java, vous pouvez envisager les options suivantes :
Passer une référence à un objet
Créer une classe pour encapsuler la variable primitive en tant que variable membre. Transmettez une instance de cette classe à la méthode, en passant effectivement une référence à la variable primitive.
Renvoyer la valeur modifiée
Modifiez la méthode play() pour renvoyer la valeur modifiée de numéro de jouet. Cela nécessite de mettre à jour l'appel dans main() pour attribuer la valeur renvoyée à la variable d'origine.
Classe ou variable statique
Si les deux fonctions sont définies dans la même classe ou classe Par exemple, vous pouvez définir toyNumber comme classe ou variable statique. Cela le rend accessible aux deux fonctions et garantit que toutes les modifications apportées sont reflétées dans la variable d'origine.
Tableau à un seul élément
Passez un tableau à un seul élément contenant la variable primitive. Ceci est considéré comme un hack mais peut être utilisé pour obtenir un comportement de type passage par référence.
En adoptant ces techniques, vous pouvez émuler efficacement le comportement de passage par référence pour les types primitifs en Java, vous permettant de modifier les variables d'origine même lorsqu'elles sont passées en arguments aux méthodes.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3