Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não está referenciando a String "Serie"

Vou colocar abaixo o meu código que estou acompanhando junto com a aula, porem não esta fazendo sentido, pois fui seguindo os passos e derrepente não compilou, acredito que preciso referenciar, mas no video da aula a Jac não faz isso.

Classe principal

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

public class Principal {
    public static void main(String[] args) {
        Filme meuFilme = new Filme();
        meuFilme.setNome("O poderoso chefão");
        meuFilme.setAnoDeLancamento(1970);
        meuFilme.setDuracaoEmMinutos(180);

        meuFilme.exibeFichaTecnicia();
        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());

        Serie lost = new Serie();
    }
}

Classe Filme

package br.com.alura.screenmatch.modelos;

public class Filme extends Titulo {
    private String diretor;

    public String getDiretor() {
        return diretor;
    }

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

Classe Serie

package br.com.alura.screenmatch.modelos;

public class Serie extends Titulo{
}

Classe Titulo

package br.com.alura.screenmatch.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 int getTotalDeAvaliacoes(){
        return totalDeAvaliacoes;
    }

    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 exibeFichaTecnicia() {
        System.out.println("Nome do filme " + nome);
        System.out.println("Ano de lançamento " + anoDeLancamento);
    }

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

    public double pegaMedia(){
        return somaDasAvaliacoes / totalDeAvaliacoes;
    }
}
2 respostas

Olá,

Alguns erros podem estar acontecendo:

Falta de Construtores: Nas classes Filme e Serie, você não definiu construtores explicitamente, mas a classe base Titulo não tem um construtor padrão (sem argumentos). Quando uma classe derivada não chama explicitamente um construtor da classe base, o construtor padrão é chamado automaticamente. Para corrigir isso, você pode adicionar um construtor sem argumentos à classe Titulo ou chamar um construtor da classe base nas subclasses.

Importações Ausentes: Na classe principal, você está tentando criar uma instância da classe Serie, mas não está importando a classe Serie corretamente. Verifique se você importou Serie da maneira correta no início do arquivo.

Escopo das Variáveis: Você mencionou que comentou as linhas meuFilme.somaDasAvaliacoes = 10; e meuFilme.totalDeAvaliacoes = 1;. Isso pode estar relacionado ao escopo das variáveis. Certifique-se de que essas variáveis sejam acessíveis no contexto em que você está tentando modificá-las.

Chamadas de Métodos: Se você não está obtendo os resultados esperados, verifique se está chamando os métodos corretos nos lugares certos. Certifique-se de que os métodos exibeFichaTecnicia, avalia, pegaMedia e outros estejam sendo chamados corretamente.

Erros de Compilação: Você mencionou que algo não está compilando corretamente, mas não especificou quais erros exatas você está enfrentando. Analise os erros de compilação para entender onde estão os problemas e corrija-os de acordo.

Ciclo de Avaliações: Verifique se a lógica para calcular a média das avaliações está correta. Certifique-se de não dividir por zero caso totalDeAvaliacoes seja zero.

Podes tentar copiar o código da Jac que ela disponibiliza no Github e comparar com o seu.

solução!

O erro constante na aula, é da importação da classe Serie, que durante a aula não foi atualizado, provavelmente fez de forma automática, e quem assiste a aula não teve a percepção, e por isso foi chegado nesta falha,