Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

Clase principal

import com.aluracursos.screenmach.calculos.CalculadoraDeTiempo;
import com.aluracursos.screenmach.modelos.Pelicula;
import com.aluracursos.screenmach.modelos.Serie;

/**
 * Clase Principal que demuestra el uso de la clase Pelicula
 * creando una instancia y mostrando su funcionalidad básica.
 */
public class principal {

    /**
     * Método main - punto de entrada de la aplicación
     *
     * @param args Argumentos de línea de comandos (no utilizados)
     */
    public static void main(String[] args) {
        // 1. Creación de una instancia de Película
        Pelicula miPeliculaFavorita = new Pelicula();

        // 2. Configuración de los atributos de la película mediante setters
        miPeliculaFavorita.setNombre("Yo robot"); // Establece el título
        miPeliculaFavorita.setFechaDeLanzamiento(2004); // Año de lanzamiento
        miPeliculaFavorita.setDuracionEnMinutos(120); // Duración en minutos
        miPeliculaFavorita.setIncluidoEnElPlan(true); // Disponible en plan básico

        // 3. Mostrar la ficha técnica de la película
        miPeliculaFavorita.muestraFichaTecnica();

        // 4. Registrar evaluaciones para la película
        miPeliculaFavorita.evalua(10); // Primera evaluación (máxima puntuación)
        miPeliculaFavorita.evalua(10); // Segunda evaluación
        miPeliculaFavorita.evalua(7.9); // Tercera evaluación

        // 5. Mostrar estadísticas de evaluaciones
        System.out.println("Total de evaluaciones: " +
                miPeliculaFavorita.getTotalDeEvaluaciones());
        System.out.println("Puntuación promedio: " +
                miPeliculaFavorita.calculaMedia());

        Serie casaDragon = new Serie();
        casaDragon.setNombre("La Casa del Dragón");
        casaDragon.setFechaDeLanzamiento(2022);
        casaDragon.setTemporadas(1);
        casaDragon.setDuracionEnMinutos(50);
        casaDragon.setEpisodiosPorTemporada(10);
        casaDragon.muestraFichaTecnica();
        System.out.println("Duracion total: " + casaDragon.getDuracionEnMinutos());

        Pelicula otraPelicula = new Pelicula();
        otraPelicula.setNombre("Avatar");
        otraPelicula.setFechaDeLanzamiento(2009);
        otraPelicula.setDuracionEnMinutos(162);

        CalculadoraDeTiempo calculadora = new CalculadoraDeTiempo();
        calculadora.incluye(miPeliculaFavorita);
        calculadora.incluye(casaDragon);
        calculadora.incluye(otraPelicula);
        System.out.println("Tiempo para ver tus titulos favoritos estas vacaciones:"
                + calculadora.getTiempoTotal() + " minutos");

    }
}
4 respuestas
package com.aluracursos.screenmach.modelos;

public class Titulo {
    private String nombre;
    private int fechaDeLanzamiento;
    private int duracionEnMinutos;
    private boolean incluidoEnElPlan;
    private double sumaDeLasEvaluaciones;
    private int totalDeEvaluaciones;

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidoEnElPlan() {
        return incluidoEnElPlan;
    }

    public int getTotalDeEvaluaciones() {
        return totalDeEvaluaciones;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
        this.fechaDeLanzamiento = fechaDeLanzamiento;
    }

    public void setDuracionEnMinutos(int duracionEnMinutos) {
        this.duracionEnMinutos = duracionEnMinutos;
    }

    public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
        this.incluidoEnElPlan = incluidoEnElPlan;
    }

    public void muestraFichaTecnica() {
        System.out.println("El nombre de la película es: " + nombre);
        System.out.println("El año de lanzamiento es: " + fechaDeLanzamiento);
        System.out.println("La duración en minutos es: " + getDuracionEnMinutos());
    }

    public void evalua(double nota) {
        sumaDeLasEvaluaciones += nota;
        totalDeEvaluaciones++;
    }

    public double calculaMedia() {
        return totalDeEvaluaciones > 0 ? sumaDeLasEvaluaciones / totalDeEvaluaciones : 0;
    }


}

//clase serie

package com.aluracursos.screenmach.modelos;

public class Serie extends Titulo {
    int temporadas;
    int episodiosPorTemporada;
    int minutosPorEpisodio;

    @Override
    public int getDuracionEnMinutos() {
        return temporadas * episodiosPorTemporada * minutosPorEpisodio;
    }

    public int getTemporadas() {
        return temporadas;
    }

    public void setTemporadas(int temporadas) {
        this.temporadas = temporadas;
    }

    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }

    public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
        this.episodiosPorTemporada = episodiosPorTemporada;
    }

    public int getMinutosPorEpisodio() {
        return minutosPorEpisodio;
    }

    public void setMinutosPorEpisodio(int minutosPorEpisodio) {
        this.minutosPorEpisodio = minutosPorEpisodio;
    }
}

//calculadoraDeTiempo

package com.aluracursos.screenmach.calculos;
import com.aluracursos.screenmach.modelos.Titulo;

public class CalculadoraDeTiempo {
    private int tiempoTotal;

    public int getTiempoTotal() {
        return tiempoTotal;
    }

    public void incluye(Titulo titulo) {
        this.tiempoTotal += titulo.getDuracionEnMinutos();
    }

}

//Clase pelicula

package com.aluracursos.screenmach.modelos;

/**
 * Clase que representa una película con sus atributos básicos y sistema de evaluaciones.
 * Implementa encapsulamiento mediante métodos getters y setters para acceder a sus propiedades.
 */
public class Pelicula extends Titulo {
    private String director;

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }
}