Académique Documents
Professionnel Documents
Culture Documents
publicstaticvoidmain(String[]args){
inta=10, b=20, c=30;//declaro y asigno valores
System.out.println("Valores antes de cambiar");
System.out.format("a=%d, b=%d, c=%d\n", a, b, c);//imprime a=10, b=20, c=30
cambiandoValores(a, b, c);//cambia de valores
Entonces... podemos concluir quecuando son objetos, los parmetros son por
referencia.. porque hemos demostrado que cuando se cambia el valor desde
dentro de un mtodo afecta a la variable original.
En el primer ejemplo, se cambi el valor de la variable directamente.. es decir:
private static void cambiandoValores(int a, int b, int c) {
a = 100; //se le asigna un nuevo valor...
b = 200; //... aqu tambien se le asigna un nuevo valor
c = 300; //... idem... notemos que es a la misma variable
//....
Por tanto, si fuera con objetos... y para ser ms justos... deberamos cambiar directamente a la variable:
//...
private static void cambiarNombre(Persona p) {
p=new Persona(); //aqui se le est asignado un nuevo valor (objeto) al mismo parmetro recibido
p.setNombre("Santiago"); //y...aqui tendr otro valor
}
//...
Entonces, otra sera la historia. Probemos este ltim
publicclassPruebaParametrosObjetosApp{