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

07 Haga lo que hicimos en aula: declarando constructores

Aquí dejo lo que hice:

Principal.java:

package com.alura.screenmatch.principal;

import com.alura.screenmatch.calculos.CalculadoraDeTiempo;
import com.alura.screenmatch.calculos.FiltroRecomendacion;
import com.alura.screenmatch.modelos.Episodio;
import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;

import java.util.ArrayList;

public class Principal {
public static void main(String[] args) {
Pelicula miPelicula = new Pelicula("Encanto", 2021);
miPelicula.setDuracionEnMinutos(180);
System.out.println("Duración de la película: " + miPelicula.getDuracionEnMinutos());

    miPelicula.muestraFichaTecnica();
    miPelicula.evalua(8);
    miPelicula.evalua(5);
    miPelicula.evalua(10);
    System.out.println("Total de evaluaciones: " + miPelicula.getTotalDeEvaluaciones());
    System.out.println(miPelicula.calculaMediaEvaluaciones());


    Serie lost = new Serie("Lost", 2000);
    lost.muestraFichaTecnica();
    lost.setTemporadas(10);
    lost.setEpisodiosPorTemporada(10);
    lost.setMinutosPorEpisodio(50);
    System.out.println("Duracion de la série: " + lost.getDuracionEnMinutos());

    Pelicula otraPelicula = new Pelicula("Avatar", 2023);
    otraPelicula.setDuracionEnMinutos(200);

    CalculadoraDeTiempo calculadora = new CalculadoraDeTiempo();
    calculadora.incluido(miPelicula);
    calculadora.incluido(otraPelicula);
    calculadora.incluido(lost);
    System.out.println(calculadora.getTiempoTotal());

    FiltroRecomendacion filtro = new FiltroRecomendacion();
    filtro.filtra(miPelicula);

    Episodio episodio = new Episodio();
    episodio.setNumero(1);
    episodio.setSerie(lost);
    episodio.setTotalVisualizaciones(300);
    filtro.filtra(episodio);

    var peliculaDeBruno = new Pelicula("El señor de los anillos", 2001);
    peliculaDeBruno.setDuracionEnMinutos(180);

    ArrayList<Pelicula> listaDePeliculas = new ArrayList<>();
    listaDePeliculas.add(peliculaDeBruno);
    listaDePeliculas.add(miPelicula);
    listaDePeliculas.add(otraPelicula);

    System.out.println("Tamaño de la lista: " + listaDePeliculas.size());
    System.out.println("La primera pelicula es: " + listaDePeliculas.get(0).getNombre());
    System.out.println(listaDePeliculas.toString());
    System.out.println("toString de la pelicula: " + listaDePeliculas.get(0).toString());
}

}

PrincipalConListas.java:

package com.alura.screenmatch.principal;

import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;
import com.alura.screenmatch.modelos.Titulo;

import java.util.ArrayList;

public class PrincipalConListas {
static void main() {
Pelicula miPelicula = new Pelicula("Encanto", 2021);
miPelicula.evalua(9);
Pelicula otraPelicula = new Pelicula("Avatar", 2023);
miPelicula.evalua(6);
var peliculaDeBruno = new Pelicula("El señor de los anillos", 2001);
peliculaDeBruno.evalua(10);
Serie lost = new Serie("Lost", 2000);

    ArrayList<Titulo> lista = new ArrayList<>();
    lista.add(peliculaDeBruno);
    lista.add(miPelicula);
    lista.add(otraPelicula);
    lista.add(lost);

    for (Titulo item: lista) {
        System.out.println(item.getNombre());
        if (item instanceof Pelicula pelicula) {
            System.out.println(pelicula.getClasificacion());
        }
    }
}

}

1 respuesta

Hola Andrés, espero que estés bien

Gracias por compartir tu código. Parece que estás trabajando en un proyecto que involucra clases para manejar películas y series, y estás utilizando constructores para inicializar objetos de estas clases.

Una cosa que noto es que en tu clase PrincipalConListas, el método main no está definido con el modificador public ni con el tipo de retorno void, y tampoco acepta argumentos, lo cual es necesario para que el método main sea ejecutable desde la línea de comandos. Debería verse así:

public static void main(String[] args) {
    // tu código aquí
}

Además, si estás buscando asegurarte de que tus constructores están correctamente declarados, aquí tienes un ejemplo básico de cómo podría verse un constructor para la clase Pelicula:

public class Pelicula {
    private String nombre;
    private int año;

    public Pelicula(String nombre, int año) {
        this.nombre = nombre;
        this.año = año;
    }

    // otros métodos y atributos
}

Asegúrate de que todas las clases que estás utilizando tienen constructores definidos de manera similar si es necesario inicializar ciertos atributos al momento de crear una instancia.

Espero que esto te ayude a avanzar con tu proyecto. ¡Bons estudios!