Java - Array de Objetos

 
Vista:

Array de Objetos

Publicado por Rafael Valdez (3 intervenciones) el 10/04/2007 21:37:00
Que tal amigos, tengo una duda miren estoy haciendo un programa que maneja una video, tengo la clase Tienda que contiene conmo atributo un arrelgo llamado DVD[100] tipo TDvd que es otra clase con los atributos codigo titulo y precio, sin embargo esta clase (tDVD) hereda otras 3 Tpelicula, Tmusica ; TVideojuego en la clase TTienda hay un metodo de GetNoDVd(calcular el numero de dvds introducidos ) que ya lo tengo solo cuento los elementos no nulos en el arreglo, sin embargo me piden tambien ke haga un GetNoPelicula, GetNoMusica, GetNoJuego, y aqui es donde ya no se como hacerle para contarlos pq no tengo idea de como guardar el tipo. A lo mejor no me estoy explicando asi que hare un pequeño ejemplo:
Dado :
Cazafantasmas(pelicula)
Alien(pelicula)
Alejandro Sanz(musica)
Halo(juego)
Los metodos deberian arrojar los sig resultados
GetNoDvd();
4
GetNoPelicula()
2
GetNoMusica()
1
GetNoJuego()
1
He visto mentes muy brillantes por aqui espero puedan ayudarme! gracias
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:Array de Objetos

Publicado por Rafa (3 intervenciones) el 10/04/2007 21:40:16
Que tal amigos, tengo una duda miren estoy haciendo un programa que maneja una video, tengo la clase Tienda que contiene conmo atributo un arrelgo llamado DVD[100] tipo TDvd que es otra clase con los atributos codigo titulo y precio, sin embargo esta clase (tDVD) hereda otras 3 Tpelicula, Tmusica ; TVideojuego en la clase TTienda hay un metodo de GetNoDVd(calcular el numero de dvds introducidos ) que ya lo tengo solo cuento los elementos no nulos en el arreglo, sin embargo me piden tambien ke haga un GetNoPelicula, GetNoMusica, GetNoJuego, y aqui es donde ya no se como hacerle para contarlos pq no tengo idea de como guardar el tipo. A lo mejor no me estoy explicando asi que hare un pequeño ejemplo:
Dado :
Cazafantasmas(pelicula)
Alien(pelicula)
Alejandro Sanz(musica)
Halo(juego)
Los metodos deberian arrojar los sig resultados
GetNoDvd();
4
GetNoPelicula()
2
GetNoMusica()
1
GetNoJuego()
1
He visto mentes muy brillantes por aqui espero puedan ayudarme! gracias
me falto agregar que :

Tpelicula Contiene atributo Genero
Tmusica contiene atributo interprete
TVideojuego contiene el atributo consoloa y eso es lo que los diferencia
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:Array de Objetos

Publicado por angel (537 intervenciones) el 10/04/2007 21:58:32
A ver si m entero....las clases Tpelicula, Tmusica y TVideojuego extienden TDvd no??
Y n l DVD[100] almacenas los 3 tipos..? Para esto quizas deverias usar un ArrrayList o alguna clase de Colecciones, seria mas optimo ya que no tendrias un tamaño fijo.

Bueno si es como te digo arriba..solo tienes que ir leyendo cada una d las posiciones del Array y comprobar el tipo de clase que recojes..

Por ejemplo el metodo GetNoPelicula()
public int GetNoPelicula(){
int conPeli=0;
for(int i=0;i<DVD.length;i++){
Object o = DVD[i];
if(o instanceof Tpelicula){
contPeli++;
}
}
return contPeli
}

El resto de metodos serian parecidos a este..

Espero habert dado alguna idea...Saludos
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:Array de Objetos

Publicado por Rafael Valdez (3 intervenciones) el 10/04/2007 23:03:41
Angel :
Agradezco mucho tu ayuda y puedo ver que eres un programador con experiencia, asi es efectivamente Tmusica etc extends TDVD el problema es que tengo que usar un array de objetos no un arraylist, el tamaño fijo no es problema ya que el programa solo maneja 100 elementos, ahora utlizando el arreglo de objetos segun yo (que a lo mejor estoy mal ) tengo que hacer un down casting para identificar los objetos y es ahi donde me atoro, si alguien me puede proponer alguna otra solucion se lo agradeceria mucho.
Saludos
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:Array de Objetos

Publicado por Gonzalo (180 intervenciones) el 11/04/2007 11:15:21
Para saber el tipo de un objeto, puedes utilizar el operador instanceof. P.ej. if ( miObjeto instanceof miClase ) { ... }

if (elemento instanceof TPelicula) {
...
} else if (elemento instanceof TMusica) {
...
} else if (elemento instanceof TVideojuego) {
...
} else {
...// Pues si no es ninguno de los tres...
}

Esto, aunque no es demasiado elegante (hay soluciones mejores, pero probablemente tendrías que cambiar más cosas en lo que tienes hecho), puede que te sirva.
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