1
resposta

[Bug] Problemas com classe titulo

Estava indo muito bem até não funcionar na parte do código abaixo: classe: principal

    Serie lost = new Serie();
    lost.setNome("Lost");
    lost.setAnoDeLancamento(2000);
    lost.exibeFichaTecnica();
    lost.setTemporadas(10);
    lost.setEpisodiosPorTemporada(10);
    lost.setMinutosPorEpisodio(50);
    System.out.println("Duração para maratonar Lost: " + lost.getDuracaoEmMinutos());
}

}

Da erro quando tendo rodar: java: cannot find symbol symbol: class Titulo

Aqui o código da 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 exibeFichaTecnica(){
    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;
}

}

O que posso fazer?

1 resposta

Olá, Beatriz! Acho o seguinte. O erro que apareceu significa que a classe Titulo não está sendo encontrada no seu código principal, e isso costuma acontecer por um dos seguintes motivos:

A classe Titulo está em um pacote (package) e não foi importada. Na classe Principal (onde você está criando o objeto Serie), você precisa adicionar no início do arquivo:

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

E provavelmente também:

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

A classe Serie precisa estender Titulo (herdar de Titulo), assim (verifique se tem isso na classe Serie):

public class Serie extends Titulo {
    // sua implementação...
}

Parece que método pegaMedia() está com erro de lógica Na sua classe Titulo, esse método está assim:

public double pegaMedia(){
    return somaDasAvaliacoes;
           totalDeAvaliacoes;
}

Essa segunda linha totalDeAvaliacoes não faz nada. O correto seria dividir a soma pelo total, assim:

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

Espero que isso vai ajudar.