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

Aplicando polimorfismo com herança

// Titulo

package br.com.alura.screenmatch.modelos;

public class Titulo {
    private String nome;
    private int anoDeLancamento;
    private boolean incluidoNoPlano;
    private double somaDasAvalacoes;
    private int totalDeAvaliacoes;
    private int duracaoEmMinutos;

    public String getNome() {
        return nome;
    }
    
    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public boolean isIncluidoNoPlano() {
        return incluidoNoPlano;
    }

    public int getDuracaoEmMinutos() {
        return duracaoEmMinutos;
    }
    
    public int getTotalDeAvaliacoes() {
        return totalDeAvaliacoes;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setAnoDeLancamento(int anoDeLancamento) {
        this.anoDeLancamento = anoDeLancamento;
    }

    public void setDuracaoEmMinutos(int duracaoEmMinutos) {
        this.duracaoEmMinutos = duracaoEmMinutos;
    }

    public void setIncluidoNoPlano(boolean incluidoNoPlano) {
        this.incluidoNoPlano = incluidoNoPlano;
    }

    public void exibeFichaTecnica(){
        System.out.println("Nome do filme: " + nome);
        System.out.println("Ano de lancamento: " + anoDeLancamento);
        System.out.println("Duração em minutos:" + duracaoEmMinutos);
        System.out.println("incluido no plano: " + incluidoNoPlano);

    }

    public void avalia(double nota){
        somaDasAvalacoes += nota;
        totalDeAvaliacoes++;
    }

    public double pegaMedia(){
        return somaDasAvalacoes / totalDeAvaliacoes;
    }

}

// Filme

package br.com.alura.screenmatch.modelos;

public class Filme extends Titulo{
    private String diretor;

    public String getDiretor(String diretor) {
        return diretor;
    }

    public void  setDiretor(String diretor){
        this. diretor = diretor;
    }
}

// Serie

package br.com.alura.screenmatch.modelos;

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

    public int getTemporadas() {
        return temporadas;
    }
    
    public void setTemporadas(int temporadas) {
        this.temporadas = temporadas;
    }
    
    public boolean isAtiva() {
        return ativa;
    }

    public void setAtiva(boolean ativa) {
        this.ativa = ativa;
    }

    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;
    }

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

// CalculadoraDeTempo

package br.com.alura.screematch.calculos;

import br.com.alura.screenmatch.modelos.Filme;
import br.com.alura.screenmatch.modelos.Serie;
import br.com.alura.screenmatch.modelos.Titulo;

public class CalculadoraDeTempo {
    private int tempoTotal ;
    
    public int getTempoTotal() {
        return this.tempoTotal;
    }
    public void inclui(Titulo titulo){
       tempoTotal += titulo.getDuracaoEmMinutos();
    }
}

// Principal

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

public class Principal {
    public static void main(String[] args) {
        Filme meufilme = new Filme();
        meufilme.setNome("Sempre ao seu lado");
        meufilme.setAnoDeLancamento(2009);
        meufilme.setDuracaoEmMinutos(93);
        meufilme.setIncluidoNoPlano(true);
      
        
         Filme outrofilme = new Filme();
        outrofilme.setNome("Avatar");
        outrofilme.setAnoDeLancamento(2023);
        outrofilme.setDuracaoEmMinutos(100);
        outrofilme.setIncluidoNoPlano(true);

        Serie lost = new Serie();
        lost.setNome("Cobra Kai");
        lost.setAnoDeLancamento(2018);
        lost.exibeFichaTecnica();
        lost.setTemporadas(6);
        lost.setEpisodiosPorTemporada(10);
        lost.setMinutosPorEpisodio(60);
       
        CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
        calculadora.inclui(meufilme);
        calculadora.inclui(outrofilme);
        calculadora.inclui(lost);
        System.out.println( "Tempo total:  " + calculadora.getTempoTotal());

    }
}
1 resposta
solução!

Olá, Samil!

Parabéns pelo esforço e dedicação, é muito gratificante ver o progresso dos estudantes.

Continue praticando e explorando cada vez mais, muito bacana a sua constante evolução em diferentes cursos.

Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software