- Crear la interfaz PuedeCantar (que es capaz de cantar), un interfaz muy simple que sólo posee un método cantar.
- Crear la clase Persona que implemente el interfaz PuedeCantar y que cuando cante lo haga con las notas musicales (muestre un string con las notas musicales).
- Crear la clase Canario y Gallo que implemente el interfaz PuedeCantar y que muestre como cantan (que muestre un string con los sonidos que hacen el canario y el gallo respectivamente)
- Realice el programa que haga cantar a un canario y un tenor.
Ejercicio 2: Implementar las clases e interfaces que se describen a continuación:
- Algunos seres pueden caminar y puede nadar estas dos capacidades son interfaces (PuedeCaminar.java y PuedeNadar.java).
- Los mamiferos son animales que pueden moverse (Mamifero.java). El gato es un mamifero que puede nadar y moverse (Gato.java).
- Un Loro puede caminar pero no puede nadar.
- Agregue al ejercicio anterior la interface PuedeVolar.java
- Agregue la superclase Aves.java
- Herede la clase Avestruz.java (ave que solo camina)
- Herede la clase Loro.java (ave que camina y vuela)
- Herede la clase Murciélago.java (es un mamífero que vuela y camina)
- Cree la clase Felino.java (es un mamifero que camina y puede nadar).
- Modifique la clase Gato.java (es un Felino)
- Cree la clase Tigre.java
Ejercicio 3
Implementar una clase abstracta llamada Figura que contenga como atributo color y como métodos setColor, getColor, getArea y getPerimetro.
A continuación implementar las subclases de Figura Cuadrado, Rectangulo y Circulo.
Realizar un programa que muestre un menú con tres opciones (Cuadrado, Rectángulo y Círculo).
- Al seleccionar el cuadrado se le pedirá al usuario la longitud del lado y mostrará el área y el perímetro.
- Al seleccionar el rectángulo se le pedirá al usuario la base y la altura y mostrará el área y el perímetro.
- Al seleccionar el círculo se le pedirá al usuario la longitud del radio y mostrará el área y el perímetro.
- ¿Por qué se ha decidido declarar la clase Figura como abstracta en lugar de declarar una interfaz?
- ¿Cuál es la diferencia entre clase abstracta e interfaz?
- ¿Qué cambios harías para convertir la clase figura en interfaz?
Ejercicio 4: Inmobiliaria
Se quiere modelar una agencia inmobiliaria para lo cual se deben tener en cuenta las siguientes entidades e informaciones asociadas:
- Un inmueble viene dado por su ubicación y los metros cuadrados que ocupa. Hay dos tipos de inmuebles: superficies y construcciones. Los primeros tienen su precio por metro cuadrado. A su vez, hay dos tipos de superficies: solares y plazas de garaje. Los solares pueden estar en zona rústica o urbana. Las plazas de garaje pueden formar parte de un garaje público o de uno privado. Por su parte, las construcciones pueden ser nuevas o de segunda mano. Hay dos tipos de construcciones: viviendas y locales comerciales. Las viviendas tienen precio, número de habitaciones y piso. Los locales tienen precio por metro cuadrado.
- La agencia que queremos modelar se dedica a la venta y alquiler de inmuebles. Ahora bien, solamente alquila plazas de garaje y locales comerciales, mientras que solo vende solares y viviendas.
- La agencia inmobiliaria viene dada por sendas secuencias de alquileres y ventas.
- Definir la jerarquía de clases de forma que se cumplan los requisitos anteriores.
- Para cada una de las clases, definir su(s) constructora(s), métodos de acceso a cada uno de los atributos y un método muestra() que escriba, de la manera que consideres más conveniente, la información de la entidad de que se trate.
- Definir un método público precio() que calcula el precio que tiene una superficie.
- Definir un método añadeVentaInmueble(in) , que añade el inmueble dado por el parámetro a la secuencia de inmuebles en venta de la agencia, siempre que no estuviera ya antes en venta.
- Definir un método añadeAlquilerInmueble(in) , que añade el inmueble dado por el parámetro a la secuencia de inmuebles en alquiler de la agencia, siempre que no estuviera ya antes en alquiler.
- Definir métodos que respondan a los siguientes servicios:
- inmueblesVenta(p) , que muestra los inmuebles con un precio de venta inferior al parámetro.
- localesSegundaMano(m) , que muestra los locales comerciales de segunda mano con una superficie superior al parámetro.
- solaresRusticos() , que averigua cuántos solares no urbanos están en venta.
- Define el método equals() y toString() para las clases AgenciaInmobiliaria, Inmueble, Superficie y Solar .
- Dos agencias inmobiliarias han decidido fusionarse. Define un método fusion(ag) dentro de la clase de las agencias inmobiliarias, que permita crear una agencia nueva a partir de la agencia que invoca el método y la del parámetro dado.
No hay comentarios:
Publicar un comentario