• Lunes 23 de Diciembre de 2024, 17:07

Autor Tema:  Dudas Novato Java  (Leído 1370 veces)

ragnarok

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Dudas Novato Java
« en: Lunes 19 de Julio de 2004, 22:47 »
0
Estoy leyéndome un libro de "aprenda java como si estuviera en primero" y me han surgido varias dudas.

La primera es que se dice que el método clone() que tienen todos los objetos no debería llamar a new ni a constructores ¿por qué?.

¿Cuando se hace una asignación con el operador "=" se llama al método clone()?

He llegado a un tema en el que se explica el AWT, pero también mencionaba otro modelo de componentes llamado swing, he estado buscando información acerca de este segundo y parece bastante mejor y más interesante, la única pega que le ponían era que no es threadsafe. ¿Se puede hacer que sea threadsafe de alguna manera? ¿es muy importante? ¿cual de los dos debería aprender?

Supongo que me irán surgiendo más dudas. ¿Debería reutilizar este post?

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Dudas Novato Java
« Respuesta #1 en: Jueves 12 de Agosto de 2004, 17:50 »
0
Lo del clone() no se. De hecho la idea que tengo es que si implementas tu propio clone(), debes hacer un new del objeto, rellenarlo a tu manera y devolverlo. Lo que si es cierto (quizas te refieras a eso), es que el clone() por defecto que tienen todas las clases no llaman a news ni a constructores. Unicamente hacen una "copia" de la memoria del objeto. De todas formas, tú tienes la posibilidad de redirinir un clone() de una clase concreta para que la copia se haga como tú quieres.

Cuando se usa el = no se llama a ningún clone() ni a ningún método. Si pones a=b, entonces a y b "son" la misma cosa, "apuntan" al mismo objeto. No se copia el objeto en absoluto. Solo hay un objeto, al que a y b "apuntan".

En cuanto a swing, es una versión más moderna y más mejor de awt. Para hacer más comodamente y más vistosas las ventanas, deberías usar swing. Lo del que no es threadsafe quiere decir que no está preparada para programación con varios hilos (threads). Serías tú al hacer el código el que debe preocuparse de "sincronizar" dichos hilos. Si no metes varios hilos a posta, no deberías tener que preocuparte de nada.

Se bueno.