Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro J2SE

feed Foro J2SE Foro: J2SE

Nuevo Tema Nuevo Tema

ayuda con objetos 02/07/2009 20:34
anonymous Hola a todos, pido ayudas con esto:

estoy trabajando en un programa que maneja un arreglo de dos dimensiones 8x8, todas las casillas tienen valor
de cero, excepto 4, que aleatoriamente se marcan con un 1, como si se tratara de un tablero de ajedrez con 4 pzas

el problema esta en que cuando tengo un tablero, y a partir de ese quiero generar uno nuevo, mediante solo mover
una de las pzas (que implica borrar uno de los unos y ponerlo en otro lugar). Sucede que que el tablero origen,
toma los atributos del segundo, osea del que se genero a partir del primero.

// S es el tablero origen
// Snew es que nuevo a partir de Snew


    Solucion Snew = new Solucion();
    Solucion S = new Solucion();
    Solucion envio = new Solucion();

envio = S;        // uso envio para "asegurar" que S no se modificara
Mostrador.MuestraTablero(S);    // aqui muestro el tablero S y veo sus atributos
Snew = new Alterador().Alterar(envio,Nalfiles);  //El resultado de la clase alterador quedara en Snew
Mostrador.MuestraTablero(S);            // aqui muestro los dos tablero y son iguales! (S perdio sus                             //valores originales)
Mostrador.MuestraTablero(Snew);
#unapprove_message#
RE: ayuda con objetos 03/07/2009 00:07
jaro

Me temo que no he entendido ni el código ni la pregunta :-)

Saludos 

#unapprove_message#
RE: ayuda con objetos 03/07/2009 00:08
itubal

Hola Amigo:

¿Que ayuda necesitas??? El programa está funcionando bien. Cuando haces...

envio=S

No estas copiando lo que hay en "S" a "envio". Lo que haces es asignar "envio" a "S" por lo que tanto "envio" como "S" están "apuntando" al mismo objeto, hacen referencia al mismo objeto. Coge un manual de Java y seguro que te lo explica mejor. Creo que hace unos días precisamente lo estaba leyendo en el libro "Piensa en Java".

Mira a ver si tienes algún método para "clonar" objetos y que realmente te copie el objeto y tengas dos objetos. ESto ya es trabajo tuyo, para que no lo tengas todo tan mascadito ¿no?.

 

Seguro que alguien del foro no puede explicar esto mejor. Yo estaré encantado de aprender más y concretar esto mucho más.

 Un saludo

#unapprove_message#
RE: RE: ayuda con objetos 05/07/2009 17:49
anonymous

hola a todos, el problema quedo resuelto cuando copie atributo por atributo, es decir fue una CLONACION

 

espero esto sirva para los que tengan el mismo problema

 

saludos!

#unapprove_message#
RE: ayuda con objetos 05/07/2009 20:12
itubal

¿Copiar atributo por atributo?.

Espero que alguien que tenga el mismo problema que tu no siga tus pasos!!! y que busque lo que realmente tu necesitabas y no has encontrado.

http://java.sun.com/j2se/1.4.2/docs/api/in dex.html

todos los objetos tienen un metodo clone()

 Un saludo.

#unapprove_message#
RE: ayuda con objetos 06/07/2009 10:45
jomaveger

El clone() te permite hacer copias superficiales. Si quieres hacer copias profundas, usa serialización.

 

Un saludo.

#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano