Olá, Pedro. Como vai?
Muito bacana ver a sua resolução dos desafios práticos! Você mandou muito bem na estruturação das classes e na separação das responsabilidades entre os arquivos de modelo e as classes principais (com o método main).
Analisando as suas soluções, o destaque fica para a classe Musica, que é a mais complexa do exercício. A sua lógica para acumular as notas na variável avaliacao e incrementar o contador numAvaliacoes a cada chamada do método avalia ficou perfeita e executa exatamente o comportamento esperado para o cálculo da média.
Para agregar ainda mais valor ao seu aprendizado e evolução como pessoa desenvolvedora, deixo duas sugestões de boas práticas para os seus próximos estudos:
Cauculadora em vez de Calculadora. Em projetos reais, pequenos erros de digitação nos nomes de classes ou métodos podem dificultar a busca e a manutenção do código por outros colegas de equipe. Como você está utilizando o IntelliJ IDEA, uma dica de ouro é utilizar a ferramenta de refatoração nativa: basta clicar no nome da classe com erro de digitação e pressionar o atalho Shift + F6 (ou clicar com o botão direito e ir em Refactor -> Rename). A IDE corrigirá o nome do arquivo e atualizará todas as vezes que você instanciou essa classe no projeto de forma automática!public class Pessoa {
void mensagem() {
System.out.println("Olá Mundo!");
}
}
Isso facilita a leitura, melhora a organização do fórum e permite que outros alunos e instrutores copiem o seu código para testar em suas próprias máquinas.
Continue com esse excelente ritmo de prática e dedicação. A base de Orientação a Objetos que você está construindo é muito sólida.
Espero que possa ter lhe ajudado!