Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Ragnarok en 22 Julio 2004, 03:53 am



Título: dudas novato en java.
Publicado por: Ragnarok en 22 Julio 2004, 03:53 am
Estoy leyéndome el libro de "aprenda java como si estuviera en primero" y me han surgido varias dudas.


  • 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() o son dos cosas distintas?
  • 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?
  • He leido que se pueden hacer tipos como los enumerados de C++ con interfaces en java. Pero no había ningún ejemplo.¿Cómo sería?, ¿es esta la mejor forma de hacer enumerados en java o hay alguna mejor y más parecida a C++?
  • A menudo se hace referencia a la documentación online de java, ¿hay algún sitio oficial estilo MSDN donde encontrar toda la información o se refiere a buscar por internet?

Muchas gracias.


Título: Re: dudas novato en java.
Publicado por: SinClair en 23 Agosto 2004, 07:52 am
Primero contestar a que al utilizar el metodo clone no tiene que utiizar el new porque no tiene nada que ver lo que ace el clone es crear una copia exacta del mismo objetom, cosa que con el new no aces el new te crea una instancia de un objeto.
Segundo la asignacion con = solo es utilizable en los objetos de tipo numerico i nose si en otros objetos esto no es igual que clone ia que solo asigna el valor de la derecha del = al objeto de la izquerda.
Tercero por lo que se refiere a swing es una API que javasoft saco posteriormente que awt , es una extension de awt no dependiente de la plataforma i con caracteristicas muxo mas elaboradas i optimizadas, por lo qual te recomiendo que normalmente utilizes swing ya que su potencia es bastante maior.
Quarto eso de los enumerados la verdad nose a que te refieres por lo tanto no te puedo contestar, si me dices de que se trata seguramente sabre de que va, pero por este nombre aora mismo no se me ocurre que es.
Quinto en java ai una cosa que es la API donde hay todas las clases i los metodos que la componen asi como su descripcioni podras encontrar la API de la plataforma java 1.4.2 en la siguiente direccion http://java.sun.com/j2se/1.4.2/docs/api/index.html

Espero que te haia aclarado tus dudas i sino postealas aqui.


Título: Re: dudas novato en java.
Publicado por: SinClair en 23 Agosto 2004, 21:54 pm
Fe fe ERRATA ayer taba enpanao porque la tonteria que puse tiene tela xD. El operador = se usa para poner el valor de un objeto en otro es decir el operador = no llama al metodo clone().  El operador = se usa para dar valores numericos o otros qualquiera(Aqui el error jeje) enga na mas eso nos vemos.


Título: Re: dudas novato en java.
Publicado por: Ragnarok en 6 Septiembre 2004, 00:01 am
Gracias por contestar, ya me había olvidado de este post.

La cuestión es que si tenemos un objeto que contiene por ejemplo un array de cualquier cosa al hacer clone de ese objeto se creará otro que tenga el mismo array, es decir modificando el primer objeto se modificará el segundo, por lo menos eso tengo entendido.

En cambio no sé cual es el comportamiento esperado del operador '=' para estos casos, no sé si debe llamar a new y crear un nuevo array utilizando como argumento el array correspondiente del objeto a asignar, si debe comportarse como clone o si no hay ningún comportamiento esperado ni costumbre de hacerlo de alguna de las dos formas.