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

Versión de solución al ejercicio de POO

Saludos team, adjunto una versión de solución al ejercicio de aula virtual sobre POO. Para este ejercicio use el gestor de dependencias maven, y usé algunas anotaciones lombok para reducir la cantidad de código boilerplate. 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>

Modelo

package Models;

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

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Pelicula {

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

Servicio

package Services;

import Models.Pelicula;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class PeliculaService {

    private final Pelicula pelicula;

    public void evalua(double nota){
        pelicula.setSumaEvaluaciones(pelicula.getSumaEvaluaciones() + nota);
        pelicula.setTotalEvaluaciones(pelicula.getTotalEvaluaciones() + 1);
        pelicula.setMediaEvaluaciones(pelicula.getSumaEvaluaciones()/ pelicula.getTotalEvaluaciones());
    }
}

Contenedor de ejecución

package org.example;

import Models.Pelicula;
import Services.PeliculaService;

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
        Pelicula pelicula = new Pelicula();

        //Instanciación servicios con inyección de dependencia por constructor
        PeliculaService servicioEncanto = new PeliculaService(pelicula);

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

        //Evaluación película encanto
        servicioEncanto.evalua(4.9);
        servicioEncanto.evalua(8.4);
        servicioEncanto.evalua(8.6);

        //Impresiones por pantalla de los objetos
        System.out.println("Detalles película: \n" + pelicula.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.

¡Abrazos y buenos estudios!

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