6
respostas

Criação de construtores

[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());
6 respostas
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.

Oii, Daiane.

Obrigada por compartilhar sua prática sobre construtores e herança.

Você demonstrou muito bem como usar construtores personalizados tanto na classe mãe (Titulo) quanto nas classes filhas (Filme e Serie), utilizando o super() para reaproveitar a lógica comum. E, o uso da CalculadoraDeTempo, do FiltroRecomendacao e a criação da ArrayList<Filme> mostram como esses objetos podem interagir de forma elegante.

Está indo muito bem!

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