Título: Duda novato LinkedList Publicado por: lanun en 11 Julio 2014, 12:56 pm Hola, acabo de empezar con java y probando con las listas enlazadas me ha surgido una duda: he creado dos clases, la main y una clase Persona, en la que solo tengo un campo edad y un constructor en el que asigno un valor a la variable edad.
En el Main he creado una lista enlazada de Personas (LinkedList <Persona> lista = new LinkedList <Persona>();) El caso es que no sé cómo acceder a la variable edad de una clase Persona que está dentro de la lista enlazada. (Supongo que será una tontería de la sintaxis, perdonad la ignorancia). Muchas Gracias. Título: Re: Duda novato LinkedList Publicado por: gordo23 en 11 Julio 2014, 13:49 pm En la clase persona tendrías que crear getters y setters, estos son métodos para acceder y modificar campos de la clase, en este caso, en la clase persona crea estos dos métodos:
Código
Ahora puede acceder y/o modificar la variable edad desde otras clases con: Código
Como ves, no es muy dificil. Por último desde la lista se accede así: Código
Bueno, espero que lo hayas entendido, suerte y saludos.- Título: Re: Duda novato LinkedList Publicado por: lanun en 11 Julio 2014, 16:15 pm Ok, entendido, muchas gracias por la respuesta, me estaba liando con una tontería, gracias de nuevo.
Título: Re: Duda novato LinkedList Publicado por: Nasty35 en 11 Julio 2014, 16:35 pm Si solo tienes un objeto introducido sería:
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#get(int) Persona persona = lista.get(0); Con el get obtienes la persona, y el argumento lo que indica en qué posición de la lista está. (En programación se empieza a contar desde 0). Título: Re: Duda novato LinkedList Publicado por: lanun en 11 Julio 2014, 17:04 pm ¿Pero puedo hacer esa asignación entre elementos de la lista directamente y no genero errores?
Hasta donde yo sé (en C++), tenía que crear métodos de copia en las clases. Título: Re: Duda novato LinkedList Publicado por: Chuidiang en 13 Julio 2014, 16:56 pm Hola:
Aunque dicen que en java no hay punteros, realmente si vienes de C/C++ se entiende mejor si piensas que todo son punteros. Persona persona realemente es un puntero a Persona, lo que en C++ sería Persona *persona. Por eso se hacen cosas como Persona persona = new Persona(22); Si haces esta asiginación Persona persona = lista.get(0); , tienes el mismo objeto Persona dentro de la lista y en la variable persona, es como si en C++ tuvieras un puntero apuntando al elemento de la lista (persona realmente "apunta" al elemento Persona de la posición 0 de la lista. Si modificas la edad de persona, también estás modificando la de dentro del elemento de la lista. Se bueno. |