mvnForum Homepage Bienvenido domingo  |  Terminar sesión   
  Búsqueda  
  Indice |  Temas Recientes |  Quién Está en Línea |  Lista de Usuarios |  Mi Perfil |  Búsqueda |  Ayuda


Ir a »
Total de mensajes en este tema: 4 [Eliminar este Tema] [Mover este Tema]
[Ańadir a Mis Favoritos] [Ańadir un aviso a este tema] [Publicar nuevo tema]
Autor
Tema Anterior Este tema ha sido visto 74 veces y tiene 3 respuestas Tema Siguiente
Masculino iob
Novato



Ingresó: Jul 1, 2004
Mensajes: 25
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Duda Sesion3 ejer 3!! Responder a este mensaje
Responder citando
[Eliminar este Tema]

¿Cómo se deberían modificar las clases para que el método getArea() no fuera abstracto, sino que tuviera la implementación definida en la clase Figura (y funcione correctamente, claro).


Sobre esta cuestion ,¿ basta con contestarla en el respuestas.txt o hay que realizar la modificacion en los archivos?
[Jul 8, 2004 5:04:33 PM] Print Post Reportar mensaje ofensivo  Ir al inicio 
Masculino PinkFreud
Extranjero



Ingresó: Feb 26, 2004
Mensajes: 5
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   confused   Re: Duda Sesion3 ejer 3!! Responder a este mensaje
Responder citando
[Eliminar este mensaje]

Realmente no sé si hay que responderlo en el fichero de respuestas.txt o sí hay que implementarlo. Sí te puedo decir que yo lo he implementado ( además de responder en el fichero ) y ha surgido algo curioso y me gustaría saber si alguien me puede decir si lo que hice es "lícito".

Definí en la clase Figura el método getArea a partir de un array con los parámetros, y en cada figura en getArea inicializo dicho array con los parámetros y llamo a la clase padre para que los calcule. Ahora, en el fichero FiguraTest.java en determinado momento, se despila una figura y se guarda en una variable auxiliar, luego sobre ésta variable se llama al método getArea.
En ése momento me dá un error de compilación, porque dicha figura es de tipo Figura y en figura no hay método getArea(), sino un método getArea( double[] ). Se me ocurrió definir un método extra en Figura llamado getArea() sin parámetros, pero que dentro ejecuta la siguiente instrucción:

this.getArea();

y ahora funciona bien.

Realmente no entiendo bien porqué funciona confused

¿ Alguien podría aclarármelo ?

Saludos...
[Jul 8, 2004 5:38:49 PM] Print Post Reportar mensaje ofensivo  Ir al inicio 
Masculino domingo
Miembro



Ingresó: Feb 1, 2004
Mensajes: 57
Estado: En línea

Adjuntar archivo   Editar este mensaje   Re: Duda Sesion3 ejer 3!! Responder a este mensaje
Responder citando
[Eliminar este mensaje]

Hola, os hecho una mano:
la respuesta hay que implementarla (y probar que funciona).
La solución que yo tengo es cambiar el nombre de los métodos específicos y llamarlos calculaArea(). Y hacer que el método getArea() de la clase Figura llame al método calculaArea() (this.calculaArea()) específico de la subclase.

Al final, lo que ha descubierto PinkFreud es que es posible hacer lo mismo sin cambiar los nombres de los métodos.

De hecho, cuando en la clase Figura se llama a this.getArea() el objeto "this" es un objeto específico (un Circulo o un Rectangulo) que se ha cogido del Stack. Por eso, lo que se ejecuta es el método propio del objeto.

Espero no haber liado más!!

Domingo.
[Jul 8, 2004 7:12:54 PM] Print Post    domingo@dccia.ua.es Reportar mensaje ofensivo  Ir al inicio 
Masculino domingo
Miembro



Ingresó: Feb 1, 2004
Mensajes: 57
Estado: En línea

Adjuntar archivo   Editar este mensaje   Re: Duda Sesion3 ejer 3!! Responder a este mensaje
Responder citando
[Eliminar este mensaje]

Mirad también este tema, que completa la respuesta.

Domingo.
[Jul 9, 2004 7:17:06 PM] Print Post    domingo@dccia.ua.es Reportar mensaje ofensivo  Ir al inicio 
[Versión imprimible] [Publicar nuevo tema]