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

[Dúvida] Problema na classe principal

Na classe principal parece ter um problema. Ele pede que eu coloque algum valor em System.out.println("Duração da série em minutos: " + novaSerie.getDuracaoEmMinutos());

Alguém pode me ajudar a entender qual o problema?Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Principal.java

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("Norbit");
//        meuFilme.setAnoDeLancamento(2003);
//        meuFilme.setDuracaoEmMinutos(145);
//
//
//        meuFilme.exibeFichaTecnica();
//        meuFilme.avalia(8);
//        meuFilme.avalia(5);
//        meuFilme.avalia(10);
//        System.out.println("Total de avaliações: " + meuFilme.getTotalDeAvaliacoes());
//        System.out.println(meuFilme.mediaAvaliacoes());

        Serie novaSerie = new Serie();
        novaSerie.setNome("Dark");
        novaSerie.setAnoDeLancamento(2020);
        novaSerie.exibeFichaTecnica();
        novaSerie.setTemporadas(3);
        novaSerie.setEpisodiosPorTemporada(12);
        novaSerie.setMinutosPorEpisodio(40);
        System.out.println("Duração da série em minutos: " + novaSerie.getDuracaoEmMinutos());


    }
}

Série.java

package br.com.alura.screenmatch.modelos;

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

    public int getTemporadas() {
        return temporadas;
    }

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

    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }

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

    public boolean isAtiva() {
        return ativa;
    }

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

    public int getMinutosPorEpisodio() {
        return minutosPorEpisodio;
    }

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

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

Titulo.java

package br.com.alura.screenmatch.modelos;

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

    public int getTotalDeAvaliacoes() {
        return totalDeAvaliacoes;
    }

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

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

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

    public int getDuracaoEmMinutos(int valor) {
        return duracaoEmMinutos;
    }

    public void exibeFichaTecnica() {
        System.out.println("Nome do filme: " + nome);
        System.out.println("Ano de lançamento: " + anoDeLancamento);
    }

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

    public double mediaAvaliacoes() {
        return somaDeAvaliacoes / totalDeAvaliacoes;
    }
}
1 resposta
solução!

O erro é simples, você está tentando chamar o getDuracaoEmMinutos que foi sobreescrito na classe Serie como mostrado abaixo:

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

Como você pode perceber esse método que você chama no System.out.println espera um parâmetro, então é necessário que você passe para evitar o erro.