Buscar este blog

jueves, 29 de abril de 2010

Uso de alias en llamadas a metodos

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