Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio criando crostrutores

import br.com.alura.screenmatch.calculos.CalculadoraDeTempo;
import br.com.alura.screenmatch.calculos.FiltroRecomendacao;
import br.com.alura.screenmatch.modelos.Episodio;
import br.com.alura.screenmatch.modelos.Filme;
import br.com.alura.screenmatch.modelos.Serie;

import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        Filme meuFilme = new Filme("O poderso chefão",1970); //Criação com o construtor com o construtor
        meuFilme.setDuracaoEmMinutos(180);
        System.out.println("Duração do filme: " + meuFilme.getDuracaoEmMinutos());

        meuFilme.exibeFichaTecnica();
        meuFilme.avalia(8);
        meuFilme.avalia(5);
        meuFilme.avalia(10);
        System.out.println("Total de avaliações: " + meuFilme.getTotalDeAvaliacoes());
        System.out.println(meuFilme.pegaMedia());
        //meuFilme.somaDasAvaliacoes = 10;
        //meuFilme.totalDeAvaliacoes = 1;
        //System.out.println(meuFilme.pegaMedia());

        Serie lost = new Serie("Lost", 2000);//Criação com o construtor
        lost.exibeFichaTecnica();
        lost.setTemporadas(10);
        lost.setEpisodiosPorTemporada(10);
        lost.setMinutosPorEpisodio(50);
        System.out.println("Duração para maratonar Lost: " + lost.getDuracaoEmMinutos());

        Filme outroFilme = new Filme("Avatar", 2023);//Criação com o construtor com o construtor
        outroFilme.setDuracaoEmMinutos(200);

        CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
        calculadora.inclui(meuFilme);
        calculadora.inclui(outroFilme);
        calculadora.inclui(lost);
        System.out.println(calculadora.getTempoTotal());

        FiltroRecomendacao filtro = new FiltroRecomendacao();
        filtro.filtra(meuFilme);

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

        var filmeDopaulo = new Filme("Dogville",2003);//Criação com o construtor
        filmeDopaulo.setDuracaoEmMinutos(200);
        filmeDopaulo.avalia(10);

        ArrayList<Filme> listaDeFilmes =  new ArrayList<>();
        listaDeFilmes.add(filmeDopaulo);
        listaDeFilmes.add(meuFilme);
        listaDeFilmes.add(outroFilme);
        System.out.println("Tamanho da lista " +listaDeFilmes.size());
        //System.out.println("Primeiro filme " + listaDeFilmes.get(0).getNome());
        System.out.println(listaDeFilmes);




    }
}

Construtor na classe mãe "Título".

public Titulo(String nome, int anoDeLancamento) {
        this.nome = nome;
        this.anoDeLancamento = anoDeLancamento;
    }
    
\\Parte do código omitida.

Construtor na classe filha "Filme".

public class Filme extends Titulo implements Classificavel {
    private String diretor;

//Construtor

    public Filme(String nome, int anoDeLancamento) {
        super(nome, anoDeLancamento);
    }
\\Parte do código omitida.

Construtor na classe filha "Serie".

public class Serie extends Titulo {
    private int temporadas;
    private boolean ativa;
    private int episodiosPorTemporada;
    private int minutosPorEpisodio;
    
    //Construtor

    public Serie(String nome, int anoDeLancamento) {
        super(nome, anoDeLancamento);

    }
\\Parte do código omitida.

Saída permanece a mesma.

Print da compilação do código

1 resposta
solução!

Oi, Terezinha! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você aplicou super bem a ideia de construtores nas classes Filme e Serie, chamando corretamente o super() da classe Titulo. Isso deixa o código mais limpo, evita repetições e já garante que os objetos sejam criados com os valores essenciais.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!