Tema: Clases y Objetos Manejo de Fracciones Crear una clase llamada Fraction
para realizar operaciones aritmticas con fracciones. Escriba un programa
TestFraction para probar la clase. Utilice variables enteras para representar las variables de instancia de la clase (el numerador y el denominador). Proporcionar un mtodo constructor que permite a un objeto de esta clase que se inicialice cuando se declara. El constructor debe almacenar la fraccin en forma reducida (es decir, la fraccin 2/4 se almacena en el objeto como . Sugerencia: use el mximo comn divisor para simplificar la fracccin). Proporcione un constructor sin argumentos con valores por default en caso de que no se proporcionen valores iniciales. Proporcionar mtodos para cada uno de las siguientes operaciones: 1. Suma de dos nmeros Fraction. El resultado de la suma debe ser almacenado en forma reducida. 2. Resta de dos nmeros Fraction. El resultado de la resta se deben almacenar en forma reducida. 3. Multiplicacin de dos nmeros Fraction. El resultado de la multiplicacin se debe almacenar en forma reducida. 4. Divisin de dos nmeros Fraction. El resultado de la divisin debe ser almacenado en forma reducida. 5. Impresin de nmeros Fraction en la forma a / b, donde a es el numerador y b es el denominador. Tema: Herencia, polimorfismo, interfaces Parte 1: (Clases y Herencia) Escriba una clase Multimedia para almacenar informacin de objetos de tipo multimedia (pelculas, discos, mp3, etc.). Esta clase contiene ttulo, autor, formato y duracin como atributos. El formato puede ser uno de los siguientes: WAV, mp3, midi, avi, mov, mpg, cdAudio y dvd. El valor de todos los atributos se pasa por parmetro en el momento de crear el objeto. Esta clase tiene, adems, mtodos para modificar y devolver cada uno de los atributos y un mtodo toString() que devuelve la informacin del objeto. Por ltimo, un mtodo equals() que recibe un objeto de tipo multimedia y devuelve true en caso de que el ttulo y el autor sean iguales a los del objeto que llama al mtodo y false en caso contrario. Escriba una clase Pelcula que hereda de la clase Multimedia anterior. La clase Pelicula tiene, adems de los atributos heredados, un actor principal y una actriz principal. Se permite que uno de los dos sea nulo, pero no los dos. La clase debe tener mtodos para modificar y devolver los dos nuevos atributos y debe sobrescribir el mtodo toString() para que devuelva, adems de la informacin heredada, la nueva informacin. Escriba una clase ListaMultimedia para almacenar objetos de tipo multimedia. La clase debe tener un atributo que sea un arreglo de objetos Multimedia y un entero para contar cuntos objetos hay almacenados. Adems, tiene un constructor y los siguientes mtodos: a. El constructor recibe por parmetro un entero indicando el nmero mximo de objetos que va a almacenar. b. int size(): devuelve el nmero de objetos que hay en la lista. c. boolean add(Multimedia m): aade el objeto al final de la lista y devuelve true, en caso de que la lista est llena, devolver false. d. Mulmedia get(int posicion): devuelve el objeto situado en la posicin especificada. e. int indexOf(Multimedia m): devuelve la posicin del objeto que se introduce por parmetro, si no se encuentra devolver -1. f. String toString(): devuelve la informacin de los objetos que estn en la lista. Escriba una aplicacin donde: a. Se cree un objeto de tipo ListaMultimedia de tamao mximo 10. b. Se creen tres pelculas y se aadan a la lista. c. Se muestre la lista por pantalla. d. Se
cree un objeto de tipo Pelicula introduciendo el ttulo y el autor de una de las
pelculas de la lista (para el resto de los datos se utilizan valores no significativos). e. Busque la posicin de ese objeto en la lista. Parte II. (Herencia) Escriba una clase Disco que herede de la clase Multimedia anterior. La clase Disco tiene, adems de los elementos heredados, un atributo para almacenar el gnero al que pertenece (rock, pop, salsa, etc.). La clase debe tener mtodos para modificar y obtener el nuevo atributo y debe sobrescribir el mtodo toString() para que devuelva, adems de la informacin heredada, la nueva informacin. Escriba una aplicacin donde: a. Se cree un objeto de tipo ListaMultimedia de tamao mximo 10. b. Se creen tres discos y se aadan a la lista. c. Se muestre la lista por pantalla. d. Se cree un objeto de tipo Disco introduciendo el ttulo y el autor de uno de los discos de la lista (para el resto de los atributos se utilizan valores no significativos). e. Busque la posicin de este objeto en la lista. f. Obtenga el objeto que est en esa posicin y lo muestre por pantalla junto con la posicin en la que se encuentra. Parte III (Polimorfismo) Escriba una aplicacin donde: a. Se cree un objeto de tipo ListaMultimedia de tamao mximo 10. b. Se crean tres discos y se aaden a la lista. c. Se crean tres pelculas y se aaden a la lista. d. Usando polimorfismo: 1. Se muestra la lista por pantalla. 2. Se calcula la duracin total de los objetos de la lista. 3. Se muestra cuntos discos hay de pop. 4. Se obtiene cuntas pelculas no tienen actriz principal. Parte IV (Interfaces) Para proporcionar la funcionalidad de prestar algunos objetos Multimedia, defina la interfaz Prestable con los mtodos prestar(), devolver() y prestado(). Escriba la clase DiscoPrestable que herede de la clase Disco e implemente la interfaz Prestable. Para implementar los mtodos de Prestable agregue un atributo boolean prestado. Cuando se crea un objeto de tipo DiscoPrestable no est prestado. Escriba una aplicacin donde: a. Cree un mtodo objetosPrestados(): recibe como parmetro un arreglo de objetos Multimedia y devuelve un arreglo con los objetos prestados. b. Se cree un objeto de tipo ListaMultimedia de tamao mximo 10. c. Se crean tres discos y se aaden a la lista. d. Se crean tres pelculas y se aaden a la lista. e. Cree tres objetos DiscoPrestable y agrguelos a la lista. f. Preste dos objetos. g. Imprima los objetos que estn prestados.