Está en la página 1de 2

Guía N°13: Herencia

EII-147 Introducción a las Tecnologías de Información


Prof. Javiera Espinoza – Prof. Sebastián González – Prof. Pitehr Hurtado

Ejercicio 1
En la era medieval se tenían como principales personajes al Señor Feudal a los vasallos y a los
campesinos. Para modelarlos se tiene la clase PersonaMedieval que tiene como atributos nombre
(String) y edad (int). Además, existen tres clases hijas: la clase SenorFeudal, la cual tiene un título
de nobleza (String) y una cantidad de feudos a cargo (int), la clase Vasallo, la cual tiene la cantidad
de tierras que debe administrar para el SenorFeudal (int) y, por último, la clase Campesino, que
tiene el nombre del feudo en el que trabaja (String).

Realice el diagrama de clases correspondiente y programe las clases descritas y haga las
siguientes pruebas en una aplicación. ¿Qué sucede en cada uno de los casos?

- Definir una variable PersonaMedieval y asignarle un objeto SenorFeudal.


- Definir una variable SenorFeudal y asignarle una instancia de PersonaMedieval.
- Definir una variable Vasallo y asignarle un objeto Campesino.
- Probar los resultados del operador instanceof para comparar distintos objetos.

Ejercicio 2
Una empresa de trasporte desea implementar un sistema para llevar un registro de los distintos
tipos de vehículos que está operando. Todos los Vehículos tienen una patente, un año de
fabricación y una variable bolean que indica si tiene la revisión técnica aprobada. La empresa
maneja específicamente buses y camiones.

Los Buses por su parte poseen además una capacidad de pasajeros, un tipo de servicio (Clásico,
Ejecutivo, Premium) y un valor de pasaje. Los Camiones tienen capacidad de carga total, además
el nombre de una empresa a la cual prestan servicios.

Se pide implementar las clases Vehículo, Bus, Camión y una aplicación que sea capaz de manejar
una colección de a lo más 150 Vehículos. La aplicación debe desplegar un menú con las siguientes
opciones:

1. Agregar Vehículo: Pregunta al usuario el tipo de vehículo que desea agregar y las
características correspondientes a ese tipo de vehículo. Trata de agregarlo al arreglo de
vehículos e informa si fue o no posible.

2. Eliminar Vehículo: Pide el tipo de vehículo que desea eliminar, la patente del vehículo
y la empresa si se trata de un camión, y el tipo de servicio si se trata de un bus. Tanto la
patente como el otro atributo deben coincidir para eliminar el vehículo de la colección.

3. Mostrar revisión técnica pendiente: Busca los vehículos que no tienen la revisión
técnica aprobada. Debe mostrar por pantalla el tipo de vehículo y la patente del mismo.

4. Mostrar camiones de Empresa: Pregunta al usuario el nombre de la empresa y muestra


todos los datos de los camiones que trabajan para ella.

5. Salir.

1
Ejercicio 3
Una corredora de propiedades de Valparaíso necesita generar un Sistema de Información para
mantener toda la información asociada a las propiedades que se venden y arriendan a través de
ella. Toda Propiedad se identifica a través de un código (int) y tiene además un estado (venta o
arriendo), un precio asociado (int) y una dirección. Como propiedades existen los departamentos y
las casas. Cada Departamento tiene un número d departamento (int) y una cantidad de piezas
(int). Cada Casa tiene una cantidad de m2 construidos (int) y además una cantidad de m 2 de terreno.

La clase CorredoradePropiedades será la encargada de manejar El Sistema debe manejar un


arreglo de 500 Propiedades y debe proveer los siguientes métodos:

public boolean agregarPropiedad(Propiedad p): agrega la propiedad a la colección,


siempre y cuando no exista anteriormente la propiedad y exista espacio en la colección. Si
puede agregarla, debe retornar true, en caso contrario debe retornar false.

public boolean eliminarPropiedad(int código): busca la propiedad con el código


ingresado por parámetro y, si ésta existe, la elimina de la colección y retorna true. En caso
contrario debe retornar false.

public String buscarInformacion( int código): recibe por parámetro el código de una
propiedad y la busca en la colección. Si la encuentra, debe retornar un String con toda la
información básica de la propiedad de la siguiente manera: “Tipo de
propiedad”+”Estado”+”Precio”+”Dirección”. (Tipo puede ser Departamento o Casa).

public String[][] buscarDepartamentos(int cantidadPiezas, String estado): busca


todos los departamentos que tengan una cantidad igual o mayor de piezas al número
ingresado por parámetro y que sean del estado ingresado por parámetro (venta o arriendo).
Debe retornar una matriz con el código, el precio y la dirección de cada departamento.

public String[][] buscarCasa(int metrosConstruidos, String estado): busca todas las


casas que tengan una cantidad igual o mayor de m 2 construidos que al número ingresado
por parámetro y que sean del estado ingresado por parámetro (venta o arriendo).

Realice primero un diagrama de clases y luego programe las clases correspondientes.


Adicionalmente, generé un Menú que incluya interacción con el usuario y utilice todos los métodos
de la clase CorredoradePropiedades.

También podría gustarte