Copiar referencia

Claudio
02 de Enero del 2006
Hola todos. Tengo algunas dudas básicas en Java, por lo tanto les pido tengan paciencia si estoy preguntanto alguna estupidez.

En el libro "Estructuras de Datos en Java" de M.A. Weiss, capitulo 3, problema 3.10 se plantea crear una clase que modele un Cerrojo. El cerrojo posee una combinación oculta de tres números asignada mediante constructor, ademásd se tiene dos métodos, abrirCerrojo(..) para abrir el cerrojo proporcionando la combinación correcta y cambiarCombinación(..) si se conoce la combinación actual, hasta ahí la solución es sencilla. El problema está en la última parte del anunciado que dice: "Deshabilite la copia de cerrojos con combinación". ¿Significa que debo inicializar y asignar de la forma: "Cerrojo cerrojo_2 = cerrojo_1" , y no copiar la combinación actual que tiene cerrojo_1?, ¿como lo hago?, o quiza estoy interpretanto mal el enunciado y lo que se pide es copiar solo cerrojos que no tienen combinación ..., esto no concuerda muy bien con el enunciado del problema.

¿alguien me puede aclarar o ayudar?

chuidiang
02 de Enero del 2006
Hola:

Ayudaría saber de qué trata exactamente el tema en el que está ese problema ¿Serializacion? ¿Hay método clone()?, etc.

Si hay Serializacion (las clases implementan Serializable) puedes deshabilitar la copia reescribiendo los metodos writeObject y readObject que tienen todas las clases Serializables para que no hagan la copia o que hagan la copia, pero sin copiar la combinacion.

Si las copias se hacen con el método clone(), simplemente redefinelo para que no haga la copia.

Si las copias en el libro se hacen de otra manera, cuéntanos cómo es.

Se bueno.

Claudio
02 de Enero del 2006
El capitulo 3 del libro antes citado trata de manera básica lo que son las clases, por tanto, dudo que haya Serialización u otras clases involucradas. Los temas relevantes del capitulo son: Constructores, métodos modificadores y de acceso, implementación del método equals, métodos static, la referencia this, la instrucción package, el operador instanceof, atributos estáticos e inicializadores estáticos.

Espero esto ayude.