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());
}
}