class Carta {
  char c;
}
public class PasarObjetos {
  static void f(Carta y) {
    y.c = 'z';
  }
  public static void main(String[] args) {
    Carta x = new Carta();
    x.c = 'a';
    System.out.println("1: x.c: " + x.c);
    f(x);
    System.out.println("2: x.c: " + x.c);
  }
}
En muchos lenguajes de programación el método f( ) parecería estar haciendo una copia de su argumento Carta y dentro del ámbito del método. Pero una vez más, se está pasando una referencia, por lo que la línea:
y.c = 'z';
está, de hecho, cambiando el objeto fuera de f( ). La salida tiene el aspecto siguiente:
 
No hay comentarios:
Publicar un comentario