Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - solidsnake

Páginas: [1]
1
Bueno eso lo que yo hise fue crear una entrada de teclado y mediante un while si el usuario decia s o n , si es si desde un metodo de mi arreglo le daba añadirCantante(Cantante cantante) , en mi caso tengo otro metodo añadirCantante pero sin parametros el cual es un procedimiento que adentro se crea un objeto cantante y lo metia al arreglo =) , en pocas palabras sobrecargaba el medotod añadirCantate uno en el que le paso el cantante y otro en el que lo crea desde el metodo, de esta manera:

Código: [Seleccionar]
    public void añadir(CantanteFamoso cantante){
       
        arreglo.add(cantante);
               
    }
   
    public void añadir(){
       
        CantanteFamoso temp = new CantanteFamoso();
        Scanner e = new Scanner(System.in);
        System.out.println("Ingrese el nombre del cantante : ");
        temp.setNombre(e.nextLine());
        System.out.println("Ingrese el nombre del disco con mas ventas : ");
        temp.setDiscoConMasVentas(e.nextLine());
       
        arreglo.add(temp);
               
    }

2
Ola como estas, el problema que estas teniendo en el primer caso , que es el de usar el mismo objeto de CantanteFamoso , es que esa variable cantante referencia una direccion de memoria , al insertarle los valores con el Scanner quedan los valores como los insertaste y lo añades al arreglo, entonces al añadir en el espacio 0 del arreglo lo que guarda es la direccion de memoria que referencia "cantante" es por eso que cuando vuelves a hacerle set a esa variable estas haciendo cambio en la direccion de memoria de este y como el arreglo en su primer espacio tiene tambien referenciado a esa misma lo modifica , despues tu le indicas en tu algoritmo que lo añada al arreglo esa misma direccion de memoria, teniendo asi en tu arreglo el espacio 0 y el 1 referenciado a la misma direccion de memoria .

En tu segundo caso lo que haces al darle "new CantanteFamoso()" es creando otro objeto que tendra otra direccion de memoria; lo que has hecho es valido pero no es una buena tecnica de programacion porque usas el mismo alias para el objeto. seria mejor darle CantanteFamoso otrocantante = new CantanteFamoso(); y alli darle los valores. Espero haberte ayudado =)  te recomiendo leer otra vez la clase numero 44 del curso aqui el link :

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=523:la-sentencia-new-invocacion-de-un-constructor-para-crear-objetos-en-java-concepto-y-ejemplos-cu00643b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Alli nos explican que el realidad el nombre solo es un alias para el objeto lo importante es el codigo de memoria que se crea al hacerle new y crear asi un objeto =) , byee

3
Como estan, tengo una duda sobre el recorrido de colecciones en Java, usualmente los recorro con for each, pero tambien en el curso nos mencionan de Iterator , y q se usa para evitar posibles errores al usar los metodos usales de recorrido for , while. No entiendo muy bien esa parte , que errores podria haber ? me ayudaria bastante un ejemplo en el cual se note esos errores , y tambien tengo una duda con respecto a la forma con la que lo definen  segun leo dice que no trata directamente con la coleccion si no crea una copia de esta , entonces yo me pregunto si es una copia y la modifico , en la original no sera vera reflejado estos cambios ? , muchas gracias por las respuestas de antemano =)

4
Aprender a programar desde cero / Re:una pequeña duda ayuda =)
« en: 01 de Julio 2014, 06:56 »
ok muchas gracias por la respuesta, si estoy siguiendo ese curso me ayuda bastante gracias otra ves =)

5
Aprender a programar desde cero / Re:una pequeña duda ayuda =)
« en: 30 de Junio 2014, 19:53 »
jeje lo siento, debi especificar mas , estoy aprendiendo a programar en java ,  con el IDE NetBeans y cuando deseo crear los getters y setter con ALT+INSERT --> GETTER AND SETTER, es alli donde me sale una ventana con los atributos de mi clase los cuales deseo crear getter y setter , pues yo he intentado crearlos sin dale click a ese chekbox de "Encapsulate Fields" , luego le di click a ese mismo para ver la diferencia pero salia lo mismo.

6
Hola chicos como estan , cuando quiero crear getters y setters me sale en la esquina inferior derechoa un checkbox con la etiqueta "Encapsulate Fields" . Lo que genera mi duda es que los getters y setter se crean igual a si no marco esa opcion. Entonces para que sirve ?gracias por sus respuestas.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".