Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Referencias a objetos - Problema

Estas en el tema de Referencias a objetos - Problema en el foro de Java en Foros del Web. Una vez más necesito de vuestra sabiduría, ya comienza a ser una costumbre. Estoy realizando un ejercicio llamado IgualReferencia.java que muestra cómo asignar referencias entre ...
  #1 (permalink)  
Antiguo 27/02/2013, 12:03
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Referencias a objetos - Problema

Una vez más necesito de vuestra sabiduría, ya comienza a ser una costumbre. Estoy realizando un ejercicio llamado IgualReferencia.java que muestra cómo asignar referencias entre objetos, el problema es que el código que aparece en el libro, al meterlo en el compilador (eclipse), aparecen ciertos problemas:

Código Java:
Ver original
  1. package igualreferencia;
  2.  
  3. public class IgualReferencia {
  4.     public static void main(String args[]){
  5.         ClaseCadena uno, dos;
  6.         uno=new ClaseCadena("Javier");
  7.         dos=new ClaseCadena("Moldes");
  8.        
  9.         System.out.print("El objeto uno contiene: ");
  10.         System.out.println(uno.dameCadena()+"\n");
  11.         System.out.print("El objeto dos contiene: ");
  12.         System.out.println(dos.dameCadena()+"\n");
  13.        
  14.         //Se asigna la referencia de uno a dos
  15.        
  16.         dos=uno;
  17.         uno.ponCadena("Olaya");
  18.         System.out.print("El objeto uno contiene: ");
  19.         System.out.println(uno.dameCadena()+"\n");
  20.         System.out.print("El objeto dos contiene: ");
  21.         System.out.println(dos.dameCadena()+"\n");
  22.            
  23.     }
  24. }

En las líneas 5, 6 y 7 me salta un error que dice (Cannot be resolved to a type) el problema es que el libro no me explica como hace estos programas así que no entiendo bien ciertos puntos del código.

Por ejemplo, está creando las variables uno y dos de tipo ClaseCadena, sin embargo la clase ClaseCadena no esta creada por ningún sitio así que entiendo que el compilador no sepa resolver esas variables.

Podríais decirme si el código tal cual está debería de funcionar o si tendría que añadirle algo de mi cosecha?

De antemano como siempre muchas gracias.
  #2 (permalink)  
Antiguo 27/02/2013, 12:27
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Referencias a objetos - Problema

Hola:

Deberías tener otro fichero java en el proyecto o en el path de compilado que se llame ClaseCadena.java

Si ese ClaseCadena.java tiene un package que no sea el mismo que el de el fichero que muestras (package igualreferencia;), tendrás que poner en este un

import elotropackage.ClaseCadena;

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 27/02/2013, 12:32
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Referencias a objetos - Problema

Está bien, ¿estás seguro de que no viene el código de ClaseCadena o una explicación de lo que debería contener?

El código es fácil de imaginar, pero deberías de plantearte buscar otro libro si éste te da tantos problemas.

Aparte de eso, ese ejercicio sólo sirve para entender el concepto de referencia ¿eres capaz de saber que es lo que mostraría en pantalla sin ejecutarlo? Si es así enhorabuena, has entendido el concepto.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 27/02/2013, 14:56
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Referencias a objetos - Problema

Pues mirándo el código solo yo diría que si que se cual es el resultado de ese programa, para confirmarlo:

La primera parte del programa imprime Javier y Moldes.

En la segunda parte guarda la cadena uno en la variable dos y posteriormente asigna a uno la cadena Olaya por lo que deberia de imprimir Olaya y Javier.

Todo esto habiendo creado anteriormente un archivo con las clase ClaseCadena y los métodos dameCadena() y ponCadena().

Y respecto al libro se llama Java SE 6 de la editorial ANAYA y tengo entendido que es de lo mejor que hay en manuales, quizás necesite retroceder en el temario para poder abarcar este tema.
  #5 (permalink)  
Antiguo 01/03/2013, 04:08
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Referencias a objetos - Problema

Ya he conseguido completar el ejercicio pero no es el resultado que yo esperaba.

Código java:
Ver original
  1. public class ClaseCadena {
  2.     String cadena;
  3.    
  4.     ClaseCadena(String cadena){
  5.         this.cadena=cadena;
  6.     }
  7.     public String dameCadena(){
  8.         return cadena;
  9.     }
  10.     public void ponCadena(String cadena){
  11.         this.cadena=cadena;
  12.     }
  13. }

Código java:
Ver original
  1. public class IgualReferencia {
  2.     public static void main(String args[]){
  3.         ClaseCadena uno, dos;
  4.         uno=new ClaseCadena ("Javier");
  5.         dos=new ClaseCadena ("Moldes");
  6.        
  7.         System.out.print("El objeto uno contiene: ");
  8.         System.out.println( uno.dameCadena()+"\n");
  9.         System.out.print("El objeto dos contiene: ");
  10.         System.out.println( dos.dameCadena()+"\n");
  11.        
  12.         //Se asigna la referencia de uno a dos
  13.        
  14.         dos=uno;
  15.         uno.ponCadena("Olaya");
  16.         System.out.print("El objeto uno contiene: ");
  17.         System.out.println( uno.dameCadena()+"\n");
  18.         System.out.print("El objeto dos contiene: ");
  19.         System.out.println( dos.dameCadena()+"\n");
  20.            
  21.     }

Yo pensaba que en la línea 16 lo que dos recibía era el contenido de la variable uno el cual pensaba que era Javier por la declaración en la línea 6.

¿Podríais explicarme mejor este concepto para ya poner como solucionado el tema? Gracias.

Última edición por rufi88; 01/03/2013 a las 04:40
  #6 (permalink)  
Antiguo 01/03/2013, 04:59
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Referencias a objetos - Problema

dos=uno hace que dos sea el mismo objeto que uno. El objeto original dos ("Moldes") lo eliminará el recolector de basura de java, puesto que no hay ninguna variable que lo contenga ahora.

En la línea uno.ponCadena("Olaya"); haces que el nombre sea Olaya en vez de Javier. Como uno y dos ahora tienen el mismo objeto (el uno original), ahora tanto uno como dos tienen "Olaya".

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 01/03/2013, 05:13
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Referencias a objetos - Problema

Ahora si está perfectamente claro, muchas gracias a todos por ayudarme.

Tema solucionado.

Etiquetas: clase, eclipse, objetos, programa, referencias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:34.