Java - Comunicacion entre un objeto contenido en otro.

 
Vista:

Comunicacion entre un objeto contenido en otro.

Publicado por m!gu! (3 intervenciones) el 24/01/2008 16:11:25
Hola,

Necesito ayuda con un problema que me encontrado a la hora de implentar un programa que estoy llevando acabo.

El caso es que tengo una clase (imagenemos que es la clase "biblioteca"). Dicha clase tiene un vector que contienen una serie de objetos (supongamos "Libros"). Mi problema aparece a la hora de cuminicarse los libros con la biblioteca, ya que no se como puedo acceder a ella. Evidentemente, la biblioteca accede a los libros sin problemas, ya que es el que los contiene, pero no viceversa.

Lo unico que se me ha ocurrido es el crear un tercer objeto que de alguna manera se acccesible por los dos, pero no se muy bien como hacerlo..agradeceria alguna ayuda.

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comunicacion entre un objeto contenido en otro.

Publicado por Danilo Juvinao (278 intervenciones) el 24/01/2008 16:43:14
tienes las dos clases de objetos biblioteca y libros.... entiendo entonces que tienes otra clase desde donte instancias biblioteca y esta a libros....

podrias declarar esta instancia de biblioteca como static para ser accesible desde libros. mas o menos asi:

//en libros.java
public class libros {
//atributos y metodos
}

//en biblioteca.java
public class biblioteca {
libros[] lib;
//constructor
public biblioteca() {
lib = new libros[5];
}
}

//en la clase desde la cual hagas la instanciacion:

public static biblioteca bib = new biblioteca();

esa es una solucion facil... la otra puede ser usando reflections

exitos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comunicacion entre un objeto contenido en otro.

Publicado por m!gu! (3 intervenciones) el 24/01/2008 19:19:18
Muchas gracias Dani!

La verdad es que al final, preguntando y buscando, me han dado una solucion bastante trivial. El problema original, es como tu dices:

//Clase Biblioteca
public class Biblioteca{
Libro[ ] lib; // Contiene array de libros
}

//Clase libro
public class Libro{

//Cada libro guarda una referencia de la biblioteca donde esta contenido
private Biblioteca _MI_BIBLIOTECA;

public void Libro(Biblioteca new_biblioteca){ _MI_BIBLIOTECA = new_biblioteca}
}

El problema que señalaba, es que si los libros querian comunicarse con la Biblioteca, no sabia como hacerlo, ya que eran objetos del array que a priori no saben que estan contenidos en la biblioteca.

La solucion que he puesto es simple: cuando se crea un libro, en la constructura se le pasa por parametro la biblioteca que lo contiene, de esta manera puede acceder a todas sus funciones.(!!)

Ciao!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar