Programación General => Java => Mensaje iniciado por: Presscot en Domingo 29 de Octubre de 2006, 02:37
Título: Creacion De Objeto
Publicado por: Presscot en Domingo 29 de Octubre de 2006, 02:37
:huh:
Hola a todos!!!
Pues soy nuevo en esto de java y mi pregunta es la siguiente:
Tengo un objeto de tipo "circulo" el cual ya puedo dibujar, pero como puedo crear 5 circulos cuando el usuario me pida 5 de estos objetos?
Pues si alguien me puede ayudar lo agradeceria, nos vemos.
Gracias.
Título: Re: Creacion De Objeto
Publicado por: Nagisa en Domingo 29 de Octubre de 2006, 11:51
Demasiado sencillo.
Creando 5 de esos objetos y dibujandolos igual que cuando solo tienes uno.
Supongo que tu tendras algo asi:
Circulo circ = new Circulo(r, x, y); circ.dibujar();
Ahora lo que tienes que hacer es meterlo en un bucle, y los argumentos en arrays para poder acceder a ellos:
for (int i = 0; i < max; i++){ Circulo circ = new Circulo(r, x, y); circ.dibujar(); }
No se muy bien si es esto lo que preguntas...
Saludos :hola:
Título: Re: Creacion De Objeto
Publicado por: lencho en Lunes 30 de Octubre de 2006, 15:00
Citar
for (int i = 0; i < max; i++){ Circulo circ = new Circulo(r, x, y); circ.dibujar(); }
al hacer esto perderias las referencias a los objetos ya creados, osea al 1,2,3,4. Consejo. A tu clase Circula agrega un ID.
y despues hace lo te dice Nagisa.
Código: Text
for (int i = 0; i < max; i++){
Circulo circ = new Circulo(r[i], x[i], y[i]);
circ.setID(i);
circ.dibujar();
}
BYTE.
Título: Re: Creacion De Objeto
Publicado por: Presscot en Lunes 30 de Octubre de 2006, 23:10
Hola de nuevo!!!
Gracias !!! puse en marcha lo que me dijeron y ya funciona, se los agradezco.
Nos vemos gracias de nuevo
Título: Re: Creacion De Objeto
Publicado por: silverfox en Martes 31 de Octubre de 2006, 08:30
Hola...
Lamentablemente, lencho, tu solución también es incorrecta, en el sentido de que pierdes también la referencia al objeto Circulo.
Citar
Código: Text
for (int i = 0; i < max; i++){
Circulo circ = new Circulo(r[i], x[i], y[i]);
circ.setID(i);
circ.dibujar();
}
Si te fijas, estás sobreescribiendo el objeto circ en cada vuelta de bucle, por lo que dará igual todo, sólo funcionará si sólo quieres dibujarlo una vez y luego olvidarte de todos los círculos excepto del último (y para eso ya servía el código de Nagisa) Editado: La última referencia a Circulo también la pierdes, porque es una variable local al bucle. En cuanto salgas del for, desaparecerá pasto del recogedor de basura ;)
Lo que habría que hacer sería crear un array de Circulo antes del bucle y guardar los datos alli (o un Vector mejor, en mi opinión):
Código: Text
Vector todos_los_circulos= new Vector();
for (int i = 0; i < max; i++){
Circulo circ = new Circulo(r[i], x[i], y[i]);
todos_los_circulos.add(circ);
circ.dibujar();
}
De esta forma, puedes recuperar los Circulos posteriormente de la siguiene forma:
Código: Text
Circulo mi_circulo_i = (Circulo) todos_los_circulos.get(i)
Suerte.
Silverfox.
Título: Re: Creacion De Objeto
Publicado por: lencho en Martes 31 de Octubre de 2006, 15:46
Estas en toda la razon SilverFox, era eso lo que queria hacer, creo que se me paso, pero weno, gracias por la correccion.
Y no se como le sirvio la solucion a Presscot estando igual de mal.