Diferencia entre revisiones de «Prog. Aclaraciones POO»
Ir a la navegación
Ir a la búsqueda
| Línea 16: | Línea 16: | ||
=Clases abstractas= | =Clases abstractas= | ||
| + | ==Ejercicios== | ||
| + | |||
| + | :* Declara una clase Persona que pueda ser instanciada con los atributos: nombre, apellidos, edad y estado civil (soltero/casado). | ||
| + | :: Declara una clase abstracta Legislador que herede de la clase Persona, con un atributo provinciaQueRepresenta (tipo String), partido político (tipo String) y despacho que ocupa (byte). Declara un método abstracto getCamaraEnQueTrabaja que devuelve una cadena String. Crea dos clases concretas que hereden de Legislador: la clase Diputado y la clase Senador que sobreescriban los métodos abstractos necesarios. Crea una lista de legisladores y muestra por pantalla la cámara en que trabajan haciendo uso del polimorfismo. | ||
| + | :: En todas las clases sobreescribe el método toString para que muestre la información. | ||
| + | |||
| + | :: Posible solución => [https://www.aprenderaprogramar.com/foros/index.php?topic=2511.0 Enlace 1] | ||
| + | |||
| + | |||
| + | :* Declara una clase Persona que no pueda ser instanciada con los atributos: nombre, apellidos y edad. | ||
| + | :: Crea una clase Profesor que sea una subclase de la clase Persona, que tenga como atributos un idProfesor (numérico) y un método abstracto, importeNomina() que devolverá un número con decimales. | ||
| + | :: Crea una subclase de Profesor de nombre ProfesorTitular, en el que la nómina es igual a 30 horas lectivas multiplicadas por 43.20 euros cada hora. | ||
| + | :: Crea una subclase de Profesor de nombre ProfesorInterino, que tendrá como dato la fecha de inicio de la interinidad. Dicha fecha será enviada en el formato (dd/mm/yyyy) y tendrá un método devolverAños() que devolverá un número de tipo byte, que representará el número de años que lleva el Interino trabajando. | ||
| + | :: La nómina en el caso de los interinos es igual a 30 horas lectivas multiplicadas por 35.60 euros cada hora. | ||
| + | :: En todas las clases sobreescribe el método toString para que muestre la información. | ||
| + | |||
| + | |||
| + | :: Posible solución => [https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=668:clases-y-metodos-abstractos-en-java-abstract-class-clases-del-api-ejemplos-codigo-y-ejercicios-cu00695b&catid=68&Itemid=188 Enlace 2]. | ||
| + | |||
| + | :: Con respecto a la solución dada se tienen que considerar las siguientes diferencias: | ||
| + | ::* Persona se pide que se defina como abstracta. | ||
| + | ::* Las horas y precio por hora deben ser declaradas como constantes. | ||
| + | ::* La fecha es enviada en forma de cadena y cuando se quiera calcular el número de meses, deberá de hacerse uso de la clase Calendar. | ||
=Interfaces= | =Interfaces= | ||
Revisión del 19:58 5 dic 2017
Sumario
Métodos get y set
Recursividad
Tipos de relaciones en POO
Clases abstractas
Ejercicios
- Declara una clase Persona que pueda ser instanciada con los atributos: nombre, apellidos, edad y estado civil (soltero/casado).
- Declara una clase abstracta Legislador que herede de la clase Persona, con un atributo provinciaQueRepresenta (tipo String), partido político (tipo String) y despacho que ocupa (byte). Declara un método abstracto getCamaraEnQueTrabaja que devuelve una cadena String. Crea dos clases concretas que hereden de Legislador: la clase Diputado y la clase Senador que sobreescriban los métodos abstractos necesarios. Crea una lista de legisladores y muestra por pantalla la cámara en que trabajan haciendo uso del polimorfismo.
- En todas las clases sobreescribe el método toString para que muestre la información.
- Posible solución => Enlace 1
- Declara una clase Persona que no pueda ser instanciada con los atributos: nombre, apellidos y edad.
- Crea una clase Profesor que sea una subclase de la clase Persona, que tenga como atributos un idProfesor (numérico) y un método abstracto, importeNomina() que devolverá un número con decimales.
- Crea una subclase de Profesor de nombre ProfesorTitular, en el que la nómina es igual a 30 horas lectivas multiplicadas por 43.20 euros cada hora.
- Crea una subclase de Profesor de nombre ProfesorInterino, que tendrá como dato la fecha de inicio de la interinidad. Dicha fecha será enviada en el formato (dd/mm/yyyy) y tendrá un método devolverAños() que devolverá un número de tipo byte, que representará el número de años que lleva el Interino trabajando.
- La nómina en el caso de los interinos es igual a 30 horas lectivas multiplicadas por 35.60 euros cada hora.
- En todas las clases sobreescribe el método toString para que muestre la información.
- Posible solución => Enlace 2.
- Con respecto a la solución dada se tienen que considerar las siguientes diferencias:
- Persona se pide que se defina como abstracta.
- Las horas y precio por hora deben ser declaradas como constantes.
- La fecha es enviada en forma de cadena y cuando se quiera calcular el número de meses, deberá de hacerse uso de la clase Calendar.
- Con respecto a la solución dada se tienen que considerar las siguientes diferencias:
Interfaces
Lanzar excepciones
- Throws
- Throw
UML
-- Ángel D. Fernández González -- (2017).