Dícese cuando al
método se le pasa una referencia al dato. Aunque el método no puede alterar la
referencia propiamente dicha, sí puede alterar aquello a que se refiere la
referencia.
Se copia la
referencia; pero se comparte el objeto.
Java pasa por
valor todo aquello que no sean tipos primitivos: arrays y objetos.
modificación de un objeto pasado |
void a(int[] datos) { // a recibe la referencia a un array datos[0] = 1; // a modifica el array compartido } void
b() { int[] datos = new int[2]; datos[0] = 0; // la primera posición contiene 0 a(datos); // pasamos una referencia al array System.out.println(datos[0]); // la primera posición contiene 1 } |
copia local |
void a(int[] datos) { // a recibe la referencia a un array datos = new int[2]; // a fabrica su propia copia datos[0] = 1; // a modifica su array } void
b() { int[] datos = new int[2]; datos[0] = 0; // la primera posición contiene 0 a(datos); // pasamos a a una referencia al array System.out.println(datos[0]); // la primera posición contiene 0 } |
Temas relacionados
115. Método [method] (concepto)