Tengo una pregunta sobre el cambio de los valores de las variables en los métodos en Java.Cambiando los valores de las variables en los métodos, Java
Este es mi código:
public class Test {
public static void funk(int a, int[] b) {
b[0] = b[0] * 2;
a = b[0] + 5;
}
public static void main(String[] args) {
int bird = 10;
int[] tiger = {7};
Test.funk(bird, tiger);
}
}
Después de la ejecución del método Test.funk(bird, tiger)
, el valor de las aves no se cambia - se queda con el valor 10
, a pesar de que en el método funk()
hemos cambiado el valor con a = b[0] + 5;
por otro lado, el valor del elemento en los cambios de la matriz, porque tenemos la declaración b[0] = b[0] * 2;
I no entiendo por qué una cosa cambia y la otra no? ¿Podría alguien explicar esto por mí?
no, no ayuda. Java SIEMPRE es pass-by-value. Lea los enlaces proporcionados en las otras respuestas; necesitas entender esto –
Para este ejemplo mi explicación 'básica' está bien. Dejé en claro que era una explicación básica. Si el interlocutor quiere leer una explicación más detallada, los enlaces están ahí para él. No tengo forma de decir cuántos detalles requiere, así que pensé que podría apreciar la elección. – stephendl
Sí, lo aprecié. También leo los enlaces, pero las explicaciones más cortas también son útiles para comenzar. Gracias a todos. – user42155