2
respostas

Agora é com você. Aplicando polimorfismo.

import br.com.alura.screanmatch.modelos.Serie;


public class Principal {
    public static void main(String[] args) {


        Filme meuFilme = new Filme();
        meuFilme.setNome("Filme: Ainda estou aqui");
        meuFilme.setAnoDeLancamento( 2024);
        meuFilme.setDuracaoEmMinutos( 180);
        System.out.println("Duração do meu filme: " + meuFilme.getDuracaoEmMinutos());
        meuFilme.exibirFichaTecnica();
        meuFilme.avalia(8);
        meuFilme.avalia(9);
        meuFilme.avalia(10);

        System.out.println("Total de avaliações: " + meuFilme.getTotalDeAvaliacoes());
        System.out.println("Media das avaliações: " + meuFilme.pegaMedia());

        Serie aRodaDoTempo = new Serie();
        aRodaDoTempo.setNome("Série: A Roda do Tempo");
        aRodaDoTempo.setAnoDeLancamento(2023);
        aRodaDoTempo.exibirFichaTecnica();
        aRodaDoTempo.setTemporadas(2);
        aRodaDoTempo.setEpisodiosPorTemporada(10);
        aRodaDoTempo.setMinutosPorEpisodios(50);
        System.out.println("Duração para maratonar A roda do tempo  " + aRodaDoTempo.getDuracaoEmMinutos());

        CalculadoraDetempo calculadora = new CalculadoraDetempo();
        calculadora.inclui(meuFilme);
        calculadora.inclui(aRodaDoTempo);
        System.out.println(calculadora.getTempototal());
    }
}
package br.com.alura.screanmatch.modelos;

public class Titulo {
        private String nome;
        private int anoDeLancamento;
        private boolean incluidoNoPlano;
        private double somaDasavaliacoes;
        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 void setNome(String nome) {
            this.nome = nome;
        }
        public void setAnoDeLancamento(int anoDeLancamento) {
            this.anoDeLancamento = anoDeLancamento;
        }

        public void setIncluidoNoPlano(boolean incluidoNoPlano) {
            this.incluidoNoPlano = incluidoNoPlano;
        }
        public void setDuracaoEmMinutos(int duracaoEmMinutos) {
            this.duracaoEmMinutos = duracaoEmMinutos;
        }
        public void setSomaDasavaliacoes(double somaDasavaliacoes) {
            this.somaDasavaliacoes = somaDasavaliacoes;
        }
        public int getTotalDeAvaliacoes() {
            return totalDeAvaliacoes;
        }
        public void exibirFichaTecnica() {

            System.out.println("Nome:  " + nome);
            System.out.println("Ano de lançamento: " + anoDeLancamento);

        }

        public void avalia(double nota) {

            somaDasavaliacoes += nota;
            totalDeAvaliacoes++;
        }
        public double pegaMedia() {
            return somaDasavaliacoes / totalDeAvaliacoes;
        }
}
package br.com.alura.screanmatch.modelos;

  public class Filme extends Titulo{

    private String diretor;
    public String getDiretor() {
      return diretor;
    }
    public void setDiretor(String diretor) {
      this.diretor = diretor;
    }
  }
public class Serie extends Titulo{

    private int temporadas;
    private boolean ativa;
    private int episodiosPorTemporada;
    private int minutosPorEpisodios;
    public int getTemporadas() {
        return temporadas;
    }
    public boolean isAtiva() {
        return ativa;
    }
    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }
    public int getMinutosPorEpisodios() {
        return minutosPorEpisodios;
    }
    public void setTemporadas(int temporadas) {
        this.temporadas = temporadas;
    }
    public void setAtiva(boolean ativa) {
        this.ativa = ativa;
    }
    public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
        this.episodiosPorTemporada = episodiosPorTemporada;
    }
    public void setMinutosPorEpisodios(int minutosPorEpisodios) {
        this.minutosPorEpisodios = minutosPorEpisodios;
    }
    @Override
    public int getDuracaoEmMinutos() {
        return temporadas * episodiosPorTemporada * minutosPorEpisodios;
    }
}
package br.alura.screanmeatch.calculo;
import br.com.alura.screanmatch.modelos.Titulo;

public class CalculadoraDetempo {
    private int tempototal= 0;

    public int getTempototal() {
        return this.tempototal;
    }
    public void inclui(Titulo titulo){
        this.tempototal += titulo.getDuracaoEmMinutos();
    }
 }
2 respostas

Irrelevante, não consegui apagar.

Olá, Terezinha!

Infelizmente na plataforma não há a opção deletar o post, mas posso fechar o tópico, onde será visto apenas por moderadores e administradores da plataforma, nem mesmo você irá visualizar mais esse post.

No mais, bons estudos!