Title | Ultimo examen POO Soluciones |
---|---|
Author | Borja Sanchez |
Course | Programacion Orientada a Objetos |
Institution | Universidad Politécnica de Madrid |
Pages | 4 |
File Size | 113.9 KB |
File Type | |
Total Downloads | 46 |
Total Views | 138 |
Download Ultimo examen POO Soluciones PDF
EXAMEN DE POO. PARTE DE PROGRAMACIÓN Nombre:_______________
Apellidos: __________________________
Grupo: ______
1. (0.3 puntos) Escribir el código para un constructor de la clase Persona. Este constructor tendrá un solo parámetro dni de tipo String. Suponemos la existencia de un atributo (propiedad) de la clase: String dni. Si el dni proporcionado tiene una longitud diferente a 9 caracteres, se levantara la excepción DNIException, que supondremos que ya está definida y admite el constructor vacío. La excepción DNIException no se tratará en el constructor de Persona: únicamente se pasará a quien lo utilice. Escribir solamente el código del constructor pedido. Solución: public Persona(String dni) throws DNIException { if (dni.length()!=9) throw new DNIException(); else this.dni = dni; } 2.
(0.3 puntos) a) Escribir el código más sencillo posible para crear la excepción DNIException del apartado anterior. b) Escribir un método main en el que se instancie una Persona y se imprima, por consola, el texto “Tamaño incorrecto de DNI”, cuando ocurra la excepción DNIException.
Solución: a) public class DNIException extends Exception {} b) public static void main(String[] a) { try { Persona ana = new Persona(“50824F”); } catch (DNIException e) { System.out.println(“Tamaño incorrecto de DNI”); } } 3. (0.6 puntos) Deseamos hallar el impuesto total que se recauda por los vehículos de una comunidad (en nuestro ejemplo solo definiremos 3 vehículos). Los vehículos se almacenarán en un array y el impuesto total se calculará utilizando polimorfismo. Usaremos una clase abstracta Vehiculo y dos clases derivadas: Electrico y Combustion. También una clase PruebaPolimorfismo para calcular el impuesto total acumulado. El método polimórfico será double impuesto(). Los vehículos eléctricos tributan un 9% de su precio, mientras que los vehículos de combustión tributan el triple de su cilindrada. Rellenar las plantillas de código que se proporcionan a continuación, siguiendo las indicaciones que aparecen en negrita. public abstract class Vehiculo { ... // escribir aquí el método impuesto() public abstract double impuesto(); } // fin de Vehiculo // completar la definición de la clase public class Electrico extends Vehiculo { private double precio; public Electrico (double precio) { this.precio = precio; } // escribir aquí el método impuesto() public double impuesto() { return precio*9d/100d; }
// completar la definición de la clase public class Combustion extends Vehiculo private double cilindrada; public Combustion (double cilindrada) { this.cilindrada = cilindrada; } // escribir aquí el método impuesto() public double impuesto() { return cilindrada*3d; }
} // fin de Electrico
} // fin de Combustionpublic class PruebaPolimorfismo {
{
public static void main(String[] a) { /* escribir aquí la declaración e instanciación de un array de 3 vehículos que, posteriormente, pueda ser recorrido llamando al método polimórfico impusto(). */ Vehiculo vehiculos = new Vehiculo[3]; /* escribir aquí 2 instancias de vehículos eléctricos y una de vehículo de combustión, y asignarlas a las posiciones del array de vehículos. */ vehiculos[0] = new Electrico(30000d); vehiculos[1] = new Electrico(45000d); vehiculos[2] = new Combustion(1800d); double recaudacion = 0d; for (int =0;i...