RA7 - CEe¶
Empaquetar actividades
Empaqueta las actividades, dentro de la carpeta ut08, en la carpeta actividades/ce7e.
Actividad 11¶
paquete: A11_centrocomercial
Un centro comercial quiere mostrar cierta información sobre los televisores que vende. Los televisores pueden ser de dos tipos: de tubo o LCD. En concreto, de cada televisor le interesa mostrar:
- marca (String).
- modelo (String).
- precio en euros.
- pulgadas de la pantalla (double).
- resolución: La resolución se mide de forma distinta en los televisores de tubo que en los televisores LCD.
- En los TV de tubo se mide en lineas.
- En los TV LCD se mide píxels horizontales x píxels verticales.
a) Diseñar la clase Televisor con los atributos y métodos comunes a los dos tipos de televisores y sus subclases TvTubo y TvLcd con los atributos y métodos que sea necesario:
- Constructor de cada clase que permita inicializar todos los datos de la clase.
equals: dos televisiones son iguales si son de la misma marca y modelo.compareTo: se considera menor (mayor) la de menor (mayor) marca. A igual marca, menor (mayor) la de menor (mayor) modelo.public String resulucion(): devuelve un texto con la resolución del televisor, como por ejemplo "420 lineas" o "800 x 600 píxels" dependiendo del tipo de televisor.public String toString(): devuelve un texto con la marca, modelo, precio, pulgadas y resolución.
b) Diseñar la clase TestTV para probar las clases diseñadas. Crear algunos objetos de las clases TvTubo y TvLcd y mostrarlos por pantalla.
Actividad 12¶
paquete: A12_vehiculos
Aconsejable: realizar el diseño UML antes de empezar a programar.
Debes crear varias clases para un software de una empresa de transporte. Implementa la jerarquía de clases necesaria para cumplir los siguientes criterios:
- Los vehículos de la empresa de transporte pueden ser terrestres, acuáticos y aéreos. Los vehículos terrestres pueden ser coches y motos. Los vehículos acuáticos pueden ser barcos y submarinos. Los vehículos aéreos pueden ser aviones y helicópteros.
- Todos los vehículos tienen matrícula y modelo (datos que no pueden cambiar). La matrícula de los coches terrestres deben estar formadas por 4 números y 3 letras. La de los vehículos acuáticos por entre 3 y 10 letras. La de los vehículos aéreos por 4 letras y 6 números.
- Los vehículos terrestres tienen un número de ruedas (dato que no puede cambiar).
- Los vehículos acuáticos tienen eslora (dato que no puede cambiar).
- Los vehículos aéreos tienen un número de asientos (dato que no puede cambiar).
- Los coches pueden tener aire acondicionado o no tenerlo.
- Las motos tienen un color.
- Los barcos pueden tener motor o no tenerlo.
- Los submarinos tienen una profundidad máxima.
- Los aviones tienen un tiempo máximo de vuelo.
- Los helicópteros tienen un número de hélices.
- No se permiten vehículos genéricos, es decir, no se deben poder instanciar objetos que sean vehículos sin más. Pero debe ser posible instanciar vehículos terrestres, acuáticos o aéreos genéricos (es decir, que no sean coches, motos, barcos, submarinos, aviones o helicópteros).
- El diseño debe obligar a que todas las clases de vehículos tengan un método imprimir() que imprima por pantalla la información del vehículo en una sola línea.
Implementa todas las clases necesarias con: atributos, constructor con parámetros, getters/setters y el método imprimir. Utiliza abstracción y herencia de la forma más apropiada.
Implementa también una clase Programa para hacer algunas pruebas: Instancia varios vehículos de todo tipo (coches, motos, barcos, submarinos, aviones y helicópteros) así como vehículos genericos (terrestres, acuáticos y aéreos). Crea un ArrayList y añade todos los vehículos. Recorre la lista y llama al método imprimir de todos los vehículos.
Actividad 13¶
Gestión de Biblioteca
- Crear una jerarquía de clases para gestionar una biblioteca:
- Superclase
Publicacioncon atributostitulo,autor,año. - Subclases
LibroyRevista.Librotendrá un atributoisbnyRevistaun atributonumeroEdicion. - Crear una clase
Bibliotecaque contenga una lista de publicaciones y permita añadir, eliminar y buscar publicaciones. - Implementar una clase
TestBibliotecaque pruebe todas las funcionalidades de la biblioteca utilizando las clases heredadas.