Olá, Viviane! Como vai?
O que está causando boa parte dos problemas presentes no seu código, imagino que todos, seja a presença do método main
que está envolvendo todos os atributos e métodos da classe Musica
.
Para resolver isso você deve apagar a definição desse método da linha 2 e definir ele depois do método pegaMedia
. Segue um exemplo de como ficaria:
public class Musica {
String titulo;
String artista;
int anoLancamento;
double somaDasAvaliacoes;
int numAvaliacoes;
void exibeFichaTecnica() {
System.out.println("**************************");
System.out.println("Ficha técnica");
System.out.println("Título da música: " + this.titulo);
System.out.println("Artista: " + this.artista);
System.out.println("Ano de lancamento: " + this.anoLancamento);
}
void avalia(double nota) {
somaDasAvaliacoes += nota;
numAvaliacoes++;
}
double pegaMedia() {
return somaDasAvaliacoes / numAvaliacoes;
}
public static void main(String[] args) {
Musica minhaMusica = new Musica();
minhaMusica.titulo = "Exemplo";
minhaMusica.artista = "Artista";
minhaMusica.anoLancamento = 2022;
minhaMusica.exibeFichaTecnica();
minhaMusica.avalia(4.5);
minhaMusica.avalia(5.0);
double media = minhaMusica.pegaMedia();
System.out.println("Média das avaliações: " + media);
}
}
Dessa forma não será gerado nenhum erro de expressão ilegal como você estava recebendo anteriormente já que os métodos estão seguindo corretamente suas definições e chamadas.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.