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

[Dúvida] MEDIA DE ALUNOS

package classes;

public class Aluno {
    private String nomeAluno;
    private double nota1;
    private double nota2;

    public Aluno(String nomeAluno, double nota1, double nota2) {
        this.nomeAluno = nomeAluno;
        this.nota1 = nota1;
        this.nota2 = nota2;
    }

    public double calculaMedia() {
        return (this.nota1 + this.nota2) / 2;
    }

    public void mostraResultado() {
        if ((this.nota1 < 0 || this.nota2 < 0) || (this.nota1 > 10 || this.nota2 > 10)) {
            System.out.println("Aluno: " + this.nomeAluno);
            System.out.println("Nota inválida!");
            System.out.println("=========================");
        } else if (calculaMedia() < 7) {
            System.out.println("Aluno: " + this.nomeAluno);
            System.out.println("Nota 1: " + this.nota1);
            System.out.println("Nota 2: " + this.nota2);
            System.out.printf("Média: %.1f\n", calculaMedia());
            System.out.println("Aluno reprovado!");
            System.out.println("=========================");
        } else {
            System.out.println("Aluno: " + this.nomeAluno);
            System.out.println("Nota 1: " + this.nota1);
            System.out.println("Nota 2: " + this.nota2);
            System.out.printf("Média: %.1f\n", calculaMedia());
            System.out.println("Aluno aprovado!");
            System.out.println("=========================");
        }
    }
}

import classes.Aluno;

public class MainExerciciosAlunos {
    public static void main(String[] args) {
        Aluno aluno1 = new Aluno("Alberto", 6.5, 7.5);
        Aluno aluno2 = new Aluno("Carlos", 6.0, 4.3);
        Aluno aluno3 = new Aluno("Roberto", -5.3, 6.8);
        
        aluno1.mostraResultado();
        aluno2.mostraResultado();
        aluno3.mostraResultado();
    }
}
2 respostas
solução!

Oi, Cauan! Como vai?

O seu projeto ficou bem estruturado, com a classe Aluno concentrando os atributos, o construtor, o método calculaMedia() e a exibição do resultado em mostraResultado(). Também foi uma boa escolha validar se as notas estão fora do intervalo de 0 a 10 antes de informar se o aluno foi aprovado ou reprovado.

Seu código mostra uma boa prática de orientação a objetos, separando a lógica do aluno da classe MainExerciciosAlunos.

Uma dica é que as chamadas aluno1.calculaMedia();, aluno2.calculaMedia(); e aluno3.calculaMedia(); no main não são necessárias nesse caso, porque o método mostraResultado() já chama calculaMedia() internamente.

Você poderia deixar apenas aluno1.mostraResultado();, por exemplo, mantendo o código mais direto. Qual melhoria você pensa em testar depois: adicionar mais notas ou criar uma regra para recuperação?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Lorena, muito obrigado pela observação, já removi as chamadas de calculaMedia() no Main. Eu pretendo adicionar uma regra para verificar se o aluno tem nota o suficiente para tentar a recuperação ou se ele foi imediatamente reprovado, por exemplo: se a média do aluno for igual ou maior que 5 e menor que 7, ele poderá fazer a recuperação, senão estará reprovado.