Paso por valor y referencia de Java
En el código Java proporcionado, la variable toyNumber se pasa por valor a play() método. Esto significa que se crea una copia de la variable dentro del método y cualquier modificación realizada dentro del método no se refleja en la variable original. Esto da como resultado que el resultado muestre que toyNumber en main() permanece sin cambios después de modificarlo dentro del método play().
Para lograr el equivalente de paso por referencia para primitivas en Java, puede considerar las siguientes opciones:
Pasar una referencia a un objeto
Crear una clase para encapsular la variable primitiva como una variable miembro. Pase una instancia de esta clase al método, pasando efectivamente una referencia a la variable primitiva.
Devolver el valor modificado
Modifique el método play() para devolver el valor modificado de número de juguete. Esto requiere actualizar la llamada en main() para asignar el valor devuelto a la variable original.
Clase o variable estática
Si las dos funciones están definidas dentro de la misma clase o clase Por ejemplo, puede definir toyNumber como una clase o variable estática. Esto lo hace accesible para ambas funciones y garantiza que cualquier modificación realizada se refleje en la variable original.
Matriz de un solo elemento
Pase una matriz de un solo elemento que contenga la variable primitiva. Esto se considera un truco, pero se puede utilizar para lograr un comportamiento similar al de paso por referencia.
Al adoptar estas técnicas, puede emular eficazmente el comportamiento de paso por referencia para tipos primitivos en Java, lo que le permite modificar las variables originales incluso cuando se pasan como argumentos a métodos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3