Tengo el siguiente código:Java: ¿Por qué este método de intercambio no funciona?
public class Main {
static void swap (Integer x, Integer y) {
Integer t = x;
x = y;
y = t;
}
public static void main(String[] args) {
Integer a = 1;
Integer b = 2;
swap(a, b);
System.out.println("a=" + a + " b=" + b);
}
}
espero que imprime a = 2 b = 1, pero se imprime lo contrario. Entonces, obviamente, el método de intercambio no intercambia los valores a y b. ¿Por qué?
favor refiérase diferencia entre la llamada por valor y llamada por referencia. –
En el intercambio de métodos está pasando 'valores' del objeto y no la referencia al objeto real, lo que sea que haga dentro del método de intercambio no tendrá efecto en las variables a y b. –