Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Polimorfismo y herencia - ejercicio de aula virtual

Saludos. Adjunto una versión del ejercicio de aula virtual con modificaciones. Espero les sirva

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>FirstProgram</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>RELEASE</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

Clase abstracta titulo

package Models;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@Data
public abstract class Titulo {

    protected String nombre;
    protected int fechaLanzamiento;
    protected int duracionMinutos;
    protected boolean incluidoEnPlan;
    protected double sumaEvaluaciones;
    protected int totalEvaluaciones;
    protected double mediaEvaluaciones;

    public void evalua(double nota){
        sumaEvaluaciones += nota;
        totalEvaluaciones ++;
        mediaEvaluaciones = sumaEvaluaciones / totalEvaluaciones;
    }
}

Entidad pelicula

package Models;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString (callSuper = true)
public final class Pelicula extends Titulo{

    private String director;

    @Override
    public void evalua(double nota) {
        super.evalua(nota);
    }
}

entidad serie

package Models;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString(callSuper = true)
public final class Serie extends Titulo{

    private int temporada, episodiosPorTemporada, minutosPorEpisodio;

    @Override
    public void evalua(double nota) {
        super.evalua(nota);
    }

    @Override
    public int getDuracionMinutos() {
        return temporada * episodiosPorTemporada * minutosPorEpisodio;
    }
}

Contenedor de ejecución

package org.example;

import Models.Pelicula;
import Models.Serie;

import java.util.Scanner;

public class Main {

//    private static final Scanner entry = new Scanner(System.in).useDelimiter("\n");
    public static void main(String[] args) {
        //Instanciación películas y series
        Pelicula pelicula = new Pelicula();
        Serie serie = new Serie();

        //seteo de parámetros objeto pelicula
        pelicula.setNombre("Encanto");
        pelicula.setFechaLanzamiento(2021);
        pelicula.setDuracionMinutos(120);
        pelicula.setDirector("Alfredo");

        //Evaluación película encanto
        pelicula.evalua(4.6);
        pelicula.evalua(4.9);
        pelicula.evalua(4.4);

        //Seteo parametros serie
        serie.setNombre("lucifer");
        serie.setFechaLanzamiento(2013);
        serie.setTemporada(6);
        serie.setMinutosPorEpisodio(50);
        serie.setEpisodiosPorTemporada(13);
        serie.setDuracionMinutos(serie.getDuracionMinutos());

        //Evaluación serie lucifer
        serie.evalua(5.6);
        serie.evalua(4.9);
        serie.evalua(9.8);

        //Impresiones por pantalla de los objetos
        System.out.println("Detalles película: \n" + pelicula.toString());
        System.out.println("Detalles serie: \n" + serie.toString());

    }
}
1 respuesta

Hola Alejandro, espero que estés bien

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

Dejo sugerencia de contenidos sobre Java:

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!