• Jueves 14 de Noviembre de 2024, 19:23

Autor Tema:  Creacion De Objeto  (Leído 1529 veces)

Presscot

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Creacion De Objeto
« en: Domingo 29 de Octubre de 2006, 02:37 »
0
: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

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: Creacion De Objeto
« Respuesta #1 en: Domingo 29 de Octubre de 2006, 11:51 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Creacion De Objeto
« Respuesta #2 en: Lunes 30 de Octubre de 2006, 15:00 »
0
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.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

Presscot

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Creacion De Objeto
« Respuesta #3 en: Lunes 30 de Octubre de 2006, 23:10 »
0
Hola de nuevo!!!

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

Nos vemos gracias de nuevo

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Creacion De Objeto
« Respuesta #4 en: Martes 31 de Octubre de 2006, 08:30 »
0
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.

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Creacion De Objeto
« Respuesta #5 en: Martes 31 de Octubre de 2006, 15:46 »
0
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.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"