Programación General > Java

 Creacion De Objeto

(1/2) > >>

Presscot:
: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.

Nagisa:
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:

lencho:

--- Citar ---for (int i = 0; i < max; i++){
Circulo circ = new Circulo(r, x, y);
circ.dibujar();
}
--- Fin de la cita ---

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 &#60; max; i++){    Circulo circ = new Circulo(r[i], x[i], y[i]);    circ.setID(i);    circ.dibujar();}  
BYTE.

Presscot:
Hola de nuevo!!!

Gracias !!! puse en marcha lo que me dijeron y ya funciona, se los agradezco.

Nos vemos gracias de nuevo

silverfox:
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 &#60; max; i++){   Circulo circ = new Circulo(r[i], x[i], y[i]);   circ.setID(i);   circ.dibujar();} 
--- Fin de la cita ---

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 &#60; 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.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa