SoloCodigo

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
  1.  
  2. for (int i = 0; i &#60; max; i++){
  3.     Circulo circ = new Circulo(r[i], x[i], y[i]);
  4.     circ.setID(i);
  5.     circ.dibujar();
  6. }
  7.  
  8.  

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
  1. for (int i = 0; i &#60; max; i++){
  2.    Circulo circ = new Circulo(r[i], x[i], y[i]);
  3.    circ.setID(i);
  4.    circ.dibujar();
  5. }
  6.  

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
  1. Vector todos_los_circulos= new Vector();
  2. for (int i = 0; i &#60; max; i++){
  3.    Circulo circ = new Circulo(r[i], x[i], y[i]);
  4.    todos_los_circulos.add(circ);
  5.    circ.dibujar();
  6. }
  7.  

De esta forma, puedes recuperar los Circulos posteriormente de la siguiene forma:
Código: Text
  1. Circulo mi_circulo_i = (Circulo) todos_los_circulos.get(i)
  2.  



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.

jajaj.

BYTE.