Foros del Web » Programación para mayores de 30 ;) » Java »

Relacionar Objetos con Objeto

Estas en el tema de Relacionar Objetos con Objeto en el foro de Java en Foros del Web. Hola Necesito hacer proceso en java que mantenga la relación de un objeto con otros objetos. Seria algo así como tener un metodo constructor de ...
  #1 (permalink)  
Antiguo 16/10/2010, 14:58
 
Fecha de Ingreso: octubre-2010
Ubicación: MADRID
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Relacionar Objetos con Objeto

Hola

Necesito hacer proceso en java que mantenga la relación de un objeto con otros objetos.

Seria algo así como tener un metodo constructor de personas, con sus atributos, por ejemplo nombre, fecha nacimiento, domicilio , etc.

Aquí abajo instancio unos cuantos de estos objetos

Person p=new Person(1,"manolo","man","pamplona",data,0,"ES");
Person p1=new Person(12,"javi","j101","barcelona",data1,0,"ES");
Person p2=new Person(33,"javixx","j109","barcelona",data2,0,"ES" );
Person p3=new Person(22,"javi","j101","barcelona",data1,0,"ES");

Dichos objetos Person, se pueden relacionar con otros objetos del mismo tipo, llamando a otro metodo (addFriend) que permite crear esa relacion.

p1.addFriend(p2);
p1.addFriend(p3);

El caso es que no se como hacer esto. He añadido un atributo de tipo Vector al metodo constructor de la clase Person pero esto no me funciona cuando añado amigos con el metodo addFriend ya que me devuelve el siguiente error.

Exception in thread "main" java.lang.NullPointerException
at Person.addFriend(Person.java:162)
at test2.main(test2.java:39)

el metodo addFriend() lo he codificado así:

this.friends.addElement(friend);

No se que hacer y como llevar a cabo esto. algo me falta pero soy inexperto en java y no tengo ni idea. A ver si alguien me echa una mano.

Gracias.
  #2 (permalink)  
Antiguo 16/10/2010, 19:37
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Relacionar Objetos con Objeto

Un vector es un objeto más, por lo que necesitas inicializarlo (hacer un new), el nullpointer parece indicar que es eso lo que te falta.

Los Vector están desfasados, deberías usar un ArrayList u otra implementación de List.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 17/10/2010, 13:02
 
Fecha de Ingreso: octubre-2010
Ubicación: MADRID
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Relacionar Objetos con Objeto

Gracias por la respuesta.

Lo he intentado con un ArrayList pero me pasa lo mismo, ya no se que hacer.


He declarado el ArrayList en la clase asi:

ArrayList<Person> friends;

Luego en el constructor lo he puesto como atributo:

public Person(int idUser, String username, String realname, String locality,
Date birthDate, int privacy, String country, ArrayList<Person> friends)

y despues lo he instanciado dentro del metodo asi:

friends=new ArrayList<Person>();

el metodo que añade objetos al array es así:

public void addFriend(Person friend){
this.friends.add(friend);
}

pero me sigue dando el mismo error:

Exception in thread "main" java.lang.NullPointerException
at Person.addFriend(Person.java:166)
at test2.main(test2.java:39)

no se que hago mal, si alguien me pudiese ayudar le quedaría muy agradecido.

Muchas gracias.
  #4 (permalink)  
Antiguo 17/10/2010, 14:08
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Relacionar Objetos con Objeto

No tienes nada claro qué es un constructor ni cómo se crean las clases.

Cita:
public Person(int idUser, String username, String realname, String locality,
Date birthDate, int privacy, String country, ArrayList<Person> friends)
Pasas como parámetro una lista que no existe para crearla en el método, eso es un fallo de concepto enorme.

Código Javascript:
Ver original
  1. public class Person {
  2.  
  3.  
  4. private/public idUser;
  5. ...
  6. private List <Person> friends = new ArrayList <Person>();
  7.  
  8. public Person(int idUser, String username, String realname, String locality,
  9. Date birthDate, int privacy, String country){
  10. this.idUser=idUser;
  11. ...
  12. }
  13.  
  14. ...
  15. public void addFriend(Person friend){
  16. this.friends.add(friend);
  17. }
  18.  
  19. }

También podrías hacer el new desde el constructor, pero nunca pasar como parámetro un objeto sin inicializar.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 18/10/2010, 00:26
 
Fecha de Ingreso: octubre-2010
Ubicación: MADRID
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Relacionar Objetos con Objeto

Gracias por las respuestas, al final me salio y ya he podido añadir personas a la lista de amigos.

Soy nuevo en esto y hay muchos conceptos con los que todavía me lío. Espero aclararme pronto por que aún me queda tarea.

No se si será mucho pedir pero ahora el problema que me piden es sacar una lista de los amigos de los amigos de un determinado objeto y tampoco tengo ni idea de como empezar a cogerlo. A ver si me podeis echar una mano.

Muchisimas gracias por todo y ánimo con el java que aunque da dolores de cabeza es muy interesante.

Etiquetas: objeto, objetos, relacionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:17.