Referencias a objetos

Iniciado por zardanic, 13 Mayo 2008, 06:41 AM

0 Miembros y 1 Visitante están viendo este tema.

zardanic

 HOla a todos, la verdad que he estado un poco asustado, pues estoy aprendiendo java (desde cero ), y resulta que me he pegado un perdida.

resulta que no he entendido bien lo que es una referencia a un objeto. a decir verdad estuve hojeando un libro, exactamente Java2 y en uno de sus ejemplos toca el tema del que les hablo.

  bien, el planteamiento es que al crear una clase (Estado y comportamientos), y luego crear mi clase aplicacion donde tengo al main, resulta que me hacen unas sentencias un poco confusa pues no me han explicado bien la onda y ya me ponen:
     
     Ejemplo:
                    class Enteros
                       {
                          //...........aqui va lo que va.
                        }


                     public class ApEnteros
                        {
                           public static void main(String[] args)
                               {
                                  // creo dos objetos, Ent1, Ent2 pero en uno utilizo el operador     
                                  //new
                                  Enteros Ent1, Ent2;
                                  Ent1 = new Enteros();
                                  Enteros.Ent1(5);     // suponiendo me devuelve algo
                                  Ent2 = Ent1;          // asigno el valor a Ent2

                                  System.out.println("Entero 1 = " + Ent1);
                                  // ahora le asigno un nuevo valor a Ent1
                                  Enteros.Ent1(66);
                                  System.out.println("Entero 1 Ahora es : " + Ent1);

                                  //pero si tambien imprimo Ent2 aparece en  nuevo val d  Ent1
                                  System.out.println("Ent2 " + Ent2);
                                  // y esta señores , es mi duda!                                 
                                }
                         }

Bien, resumiendo....  ;D para dejar un poco mas claro....

     porque usan en uno el operador new y en el otro solo asignan sin ni siquiera utilizar el new y porque el objeto Ent2 toma automaticamente el valor de Ent1.

  Bueno, les agradezco de antemano su ayuda... por cierto estuve revisando un post en :
     http://foro.elhacker.net/java/ejercicios_java_teoriaejemplos-t34891.0.html;msg470334

pero de lo mio no veo donde, ya estuve buscando en internet por Referencias a objetos y no hay nada, si alguien me ayuda con un googlaso pues me lo manda.
  Agradezco desde ya su ayuda y espero haya podido explicarme. gracias.

Casidiablo

Citarporque usan en uno el operador new y en el otro solo asignan sin ni siquiera utilizar el new y porque el objeto Ent2 toma automaticamente el valor de Ent1.

Al principio se usa el new, porque es necesario inicializar el objeto de cero, lo que se hace invocando el constructor de la clase. En el segundo caso, lo que se hace es una ASIGNACION, por lo que no necesitas usar el operador new. Porque no lo necesitas? Porque estás diciendo que Ent2 = Ent1, y a Ent1 ya lo han incializado.

Lo pillas?

zardanic

 :D Claro como que ya lo he pillado! y si no pues corrigeme tu!... ahora entiendo que en verdad Ent2 obtiene el valor de Ent1 (asignado), osea que Ent2 hace referencia a Ent1. y siempre que se cambie el objeto Ent1, el objeto Ent2 cambiara automaticamente, por eso se tendria que utilizar el constructor de la clases para inicializar Ent2 a cero, y acontinuacion pasarle los nuevos valores que seran exclusivos de Ent2.

  Ok, ahora solo una preguntita mas.   Es normal utilizar este tipo de sentencias en las que no se inicializen los objetos? (ejemplo de Ent2), o se hace a conveniencia? y bueno ya de plano que si se utilizan, algun ejemplo de porque usarlo me gustaria.

   Ok, muy agradecido contigo Casidiablo, que me has dado la pista y la ayuda necesaria pa seguir adelante, ahora ya me gusta mas esto de POO., por cierto que chuli este foro, por eso me gusta.