En este grupo En todos

Grupo de Aprende Java



Pasando Referencias en JAVA

lady
Metodologia de la programacion univers...
Escrito por Lady Huarza Accha
el 19/08/2010

HOLA , soy nueva en este grupo y no entiendo como pasar referencias con objetos en java , espero que me puedan ayudar con este codigo que les dejo:

Class ObjetoTester {

Public void swap(Fraction f1, Fraction f2)¨{

Fraction temp;

Temp = f1;

F1 = f2;

F2 = temp;

}

}

Bien ahora lo que voy a hacer es usar esta clase para el siguiente codigo:

ObjetoTester tester;

Fraction x, y;

Tester = new ObjetoTester();

X = new Fraction(1, 2);

Y = new Fraction(3, 4);

Tester. Swap(x, y);

System.out.println( "x = " + x. ToString());

System.out.println( "y = " + y. ToString());


Bien ahora quiero saber el resultado , es facil poner en el programa y compilarlo y sacar la respuesta , pero yo quiero saber el porque de la respuesta, alguien que me explique como resolver esto pero sin el programa, usando las referncias de los objetos , la respuesta es x = 1 /2 y y = 3/4.

Les agradeceria mucho por sus opiniones.


Escrito por Marcos Roberto Lopez Marquez
el 31/08/2010

Creo que debemos empezar por aclarar objeto y referencia, Un objeto se crea al hacer un new en ese momento creas un objeto en memoria, pero no tienes acceso a el, ese objeto tiene metodos y atributos vale, ahora bien tu necesitas poder acceder a ese objeto para poder hacer uso de los metodos, en esta linea: ObjetoTester tester estas declarando una referencia llamada tester (referencia capaz de referenciar a un objeto ObjetoTester), en esto momento aun no esta referenciando (apuntando, por asi decirlo) a ningun objeto, en esta linea tester = new ObjetoTester(); creas un objeto de la clase ObjetoTester y le asignas la referencia a tester , despues de esta linea se puede decir que tester ya esta referenciando a un ObjetoTester y por lo tanto con esta referencia (tester) puedes acceder a los metodos tu objeto.

En tu codigo tanto x como y son referencias que estan referenciando a dos objetos Fraction y en esta linea Tester. Swap(x, y); tu pasas estas referencias ( referencias a los objetos Fraction) al metodo Swap. Espero me hayas comprendido jejeje