Implementación de Programación Orientada a Objetos en Java: Casos Prácticos de Deportes e Inmuebles

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,88 KB

Sección 1: Gestión de Porteros y Simulación Deportiva

1. Sobreescritura del método imprimir() para añadir bonus por penaltis

En este apartado, se procede a reescribir el método imprimir() para los porteros, añadiendo un valor de 10 por cada penalti parado.

@Override 
public void imprimir() { 
    super.imprimir(); 
    double bonus = penaltisParados * 10;
    System.out.println("Bonus: " + bonus); 
}

2. Sobreescritura del método imprimir() para añadir recargo por goles recibidos

Se ajusta el método imprimir() para reflejar un recargo de 5 por cada gol recibido.

@Override 
public void imprimir() { 
    super.imprimir(); 
    double recargo = golesRecibidos * 5; 
    System.out.println("Recargo: " + recargo);
}

3. Cálculo de puntuación para Porteros

La lógica para calcular la puntuación se define como: penaltis parados x 20 - goles recibidos x 5.

@Override 
public void imprimir() { 
    super.imprimir(); 
    double puntuacion = (penaltisParados * 20) - (golesRecibidos * 5); 
    System.out.println("Puntuacion: " + puntuacion); 
}

4. Fase de Testeo y Clasificación

Para validar el sistema, se deben seguir los siguientes pasos:

  • Crear dos equipos: Cada uno con tres jugadores (incluyendo un portero).
  • Almacenamiento: Guardar todos los jugadores en una lista global.
  • Simulación de tres partidos:
    • Calcular la puntuación individual de cada jugador.
    • Calcular la puntuación total de cada equipo.
    • Mostrar la clasificación individual y por equipos.
  • Finalización del proceso:
    • Ordenar a los jugadores por su puntuación total y mostrar la clasificación final.
    • Ordenar a los equipos por su puntuación total y mostrar la clasificación final.

Sección 2: Sistema de Gestión de Inmuebles y Comisiones

1. Definición del nuevo atributo en la clase abstracta

Cada inmueble comienza con una comisión inicial de valor 0.

public abstract class Inmueble implements Impuesto { 
    protected double comision = 0d; 
}

2. Implementación del método aumentarComision()

Este método permite incrementar el valor de la comisión actual.

public String aumentarComision(double cuanto) { 
    comision += cuanto; 
    return "Comision aumentada"; 
}

3. Implementación del método disminuirComision() con validación

Se incluye una lógica de control para evitar que la comisión sea negativa.

public String disminuirComision(double cuanto) {
    if (comision - cuanto < 0) {
        return "Error";
    } 
    comision -= cuanto; 
    return "Correcto"; 
}

4. Creación de la lista de objetos de la jerarquía

Se inicializa una lista con tres tipos diferentes de inmuebles:

List<Inmueble> lista = new ArrayList<>(); 
lista.add(new CasaRural(...)); 
lista.add(new ApartamentoFamiliar(...)); 
lista.add(new Oficina(...));

5. Pruebas de aumentos válidos individuales

Se ejecutan incrementos de comisión específicos para cada elemento de la lista:

  • Índice 0: Aumento de 1000.
  • Índice 1: Aumento de 2000.
  • Índice 2: Aumento de 3000.
lista.get(0).aumentarComision(1000); 
lista.get(1).aumentarComision(2000); 
lista.get(2).aumentarComision(3000);

6. Visualización de la cuantía total

Finalmente, se recorre la lista para calcular y mostrar la suma total de las comisiones.

double total = 0; 
for (Inmueble i : lista) {
    total += i.getComision();
} 
System.out.println("Total: " + total);

Entradas relacionadas: