Java - urgente

 
Vista:

urgente

Publicado por javier (3 intervenciones) el 23/08/2005 10:42:57
Hola foro
Tengo una duda acerca de unas clases que estoy creando en Java, la duda es la siguiente
Yo tengo dos clases, una que me genera puntos de una distribución Normal y otra que me los genera de una distribución Gamma exponencial, ahora tengo una clase que se encarga de dibujar gráficamente los puntos generados por una de las clases anteriores.El applet dibuja solamente una distribución cada vez, es decir no dibuja dos distribuciones sobre la misma gráfica, la distribución que dibuja la elige el usuario mediante un JComboBox, y ahora mi duda es la siguiente, a mi me gustaria crear un objeto genérico que dependiendo de la opción que elija el usuario de la distribución a dibujar se cree un objeto de tipo distribución normal o del otro tipo, de manera que la función de dibujar fuera común independientemente del tipo de distribución a dibujar.
He probado creando un objeto genérico Object distribucion, y luego un condicional
si es una distribucion normal-> distribucion=new DistribucionNormal...
y si es del otro tipo pues creando un objeto del otro tipo.
Ambas clases tienen métodos comunes y el problema surge cuando intento llamar a un método de la forma distribucion.metodoClases, me dice que dicho método no es de la clase Object. ¿Como puedo solucionar esto?
Espero que se haya comprendido mi pregunta.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:urgente

Publicado por chuidiang (532 intervenciones) el 23/08/2005 12:46:22
Hola:

Para lo que quieres se usa el polimorfismo. Haz una interface con un metodo del estilo

public interface MiInterface
{
public double dameY(double x);
}

Luego dos clases que implementen esa interface, una para cada distribucion.

La clase que dibuja el grafico debe tener un metodo del estilo

void dibuja (MiInterface distribucion);

El JComboBox simplemente hace new de la clase de distribucion que sea y la pasa a la clase que dibuja a través de su método dibuja().

Puedes hacer las variantes que desees, como por ejemplo, el metodo de la interface no necesita ser dameY(double x), puede ser por ejemplo

double [] damePuntos (double xinicial, double xfinal, double incremento);

en fin, tienes muchas posibilidades y adecuarlo a lo que necesites.

Un detalle más, en vez de pensar una cosa que dibuja distribuciones, piensa en una cosa que dibuje funciones y=f(x) o arrays de puntos x,y. Te vale igual para distribuciones y quizá es incluso mas genérico.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:urgente

Publicado por javier (3 intervenciones) el 23/08/2005 19:09:52
Gracias, vere haber si doy con la tecla.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar