Olá, Kauan! Tudo bem?
O problema no seu código está na forma como você está usando a variável media
. A solução mais simples e direta é utilizar a variável de classe media
dentro da função calcularMedia()
, em vez de criar uma nova variável com o mesmo nome.
Remova a declaração double media;
dentro da função calcularMedia()
:
public void calcularMedia() {
// Remova a linha "double media;" aqui
media = (nota1 + nota2 + nota3) / 3;
System.out.println("A media do aluno " + nome + " é: " + media);
}
Mantenha a declaração double media;
como um atributo da classe Aluno
:
public class Aluno {
String nome;
double nota1;
double nota2;
double nota3;
double media; // Mantenha esta linha aqui
// ...
}
Código corrigido:
public class Aluno {
String nome;
double nota1;
double nota2;
double nota3;
double media;
public void calcularMedia() {
media = (nota1 + nota2 + nota3) / 3;
System.out.println("A media do aluno " + nome + " é: " + media);
}
public void verificarSituacao() {
if (media < 0 || media > 10) {
System.out.println("Média inválida.");
System.out.println("Verifique se os número que foram inseridos estão corretos.");
} else if (media >= 7 && media <= 10) {
System.out.println("Aluno aprovado");
} else if (media >= 5 && media < 7) {
System.out.println("Aluno em recuperação");
} else {
System.out.println("Aluno reprovado");
}
}
}
Ao remover a declaração double media;
dentro da função calcularMedia()
, você está usando a variável media
que foi declarada como um atributo da classe. Isso significa que a função calcularMedia()
está atribuindo o valor da média calculada à variável media
da classe, que pode ser acessada pela função verificarSituacao()
.
Espero ter ajudado.