Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Minha resolução

package br.com.alura.meuprojeto;

public class Titulo {
    private String nome;
    private int anoDeLancamento;
    private int duracaoEmMinutos;
    private boolean incluidoNoPlano;
    private double somaDasAvaliacoes;
    private int totalAvaliacoes;
    private String sinopseDoTitulo;


    public void exibeFichaTecnica(){
        System.out.println("\n" + nome);
        System.out.println(anoDeLancamento);
        System.out.println("Duração: " + getDuracaoEmMinutos());
        System.out.println(sinopseDoTitulo);
    }

    public void avalia(double nota){
        somaDasAvaliacoes += nota;
        totalAvaliacoes ++;
    }
    public double pegaMedia() {

        if (totalAvaliacoes == 0) {
            return 0;
        }else{
            return somaDasAvaliacoes / totalAvaliacoes;
        }
    }
    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 int getDuracaoEmMinutos(){
        return duracaoEmMinutos;
    }

    public void setSinopseDoTitulo(String sinopseDoTitulo){
        this.sinopseDoTitulo = sinopseDoTitulo;
    }

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

    public String getNome(){
        return nome;
    }

    public int getTotalAvaliacoes(){
        return totalAvaliacoes;
    }
}
package br.com.alura.meuprojeto;

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

    public boolean isAtiva() {
        return ativa;
    }

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

    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }

    public int getMinutosPorEpisodio() {
        return minutosPorEpisodio;
    }

    public void setMinutosPorEpisodio(int minutosPorEpisodio) {
        this.minutosPorEpisodio = minutosPorEpisodio;
    }

    public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
        this.episodiosPorTemporada = episodiosPorTemporada;
    }

    public int getTemporadas() {
        return temporadas;
    }

    public void setTemporadas(int temporadas) {
        this.temporadas = temporadas;
    }

    @Override
    public int getDuracaoEmMinutos() {
        return temporadas * episodiosPorTemporada * minutosPorEpisodio;
    }
}
package br.com.alura.meuprojeto;

public class Filme extends Titulo {
    private String diretor;

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

public class PedroFlix {
    public static void main(String[] args){
        Filme filme1 = new Filme();
        filme1.setNome("Homem Aranha");
        filme1.setAnoDeLancamento(2005);
        filme1.setIncluidoNoPlano(true);
        filme1.setDuracaoEmMinutos(140);
        filme1.setSinopseDoTitulo(""" 
                Após ser picado por uma aranha geneticamente modificada, Peter Parker.
                ganha habilidades extraordinárias como força sobre-humana, agilidade e a capacidade de escalar paredes. 
        """);
        filme1.setDiretor("Sam Raimi");

        Series serie1 = new Series();
        serie1.setNome("Stranger Things");
        serie1.setTemporadas(4);
        serie1.setEpisodiosPorTemporada(10);
        serie1.setMinutosPorEpisodio(60);
        serie1.setAtiva(false);
        serie1.setAnoDeLancamento(2020);
        serie1.setSinopseDoTitulo("""
                Will desaparece e acaba sendo dado como desaparecido, seu amigos procuram
                resgata-lo mas para isso terão que desvendar eventos sobrenaurais e misteriosos.""");

        serie1.avalia(9.8);
        serie1.avalia(8.9);
        serie1.avalia(9.2);

        filme1.avalia(10);
        filme1.avalia(9);
        filme1.avalia(9.5);
        double media = filme1.pegaMedia();
        filme1.exibeFichaTecnica();
        System.out.println("Diretor: " + filme1.getDiretor());
        serie1.exibeFichaTecnica();
        System.out.println("Total de Avaliações:"+ filme1.getTotalAvaliacoes());
        System.out.println("A média do filme " + filme1.getNome() + " é " + media);
        filme1.getDuracaoEmMinutos();
        System.out.println("A série " + serie1.getNome() +" tem uma duracão total de " + serie1.getDuracaoEmMinutos()+"m");
    }
}
1 resposta

Olá, Pedro! Como vai?

A sua resolução ficou bem organizada e mostra uma boa aplicação de herança entre Titulo, Filme e Series, além do uso de polimorfismo com a sobrescrita do método getDuracaoEmMinutos() na classe Series.

Uma dica é revisar a classe PedroFlix, pois ela começa com ; antes da declaração da classe, e isso pode causar erro de compilação. Ajuste removendo esse ponto e vírgula e, se a classe estiver no mesmo pacote das outras, mantenha também a declaração package br.com.alura.meuprojeto; no início do arquivo. Você chegou a testar a execução depois desse ajuste para conferir se filme e série aparecem corretamente no console?

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