2
respostas

[Projeto] projeto aluno

public class Main {
public static void main(String[] args) {
Aluno newAluno = new Aluno();

    newAluno.setNome("matheus");
    System.out.println(newAluno.getNome());
    newAluno.setNotas(8);
    System.out.println(newAluno.getNotas());
    newAluno.setNotas(7);
    System.out.println(newAluno.getNotas());
    newAluno.setNotas(8.5F);
    System.out.println(newAluno.getNotas());


    System.out.println(newAluno.calcMedia());

}

}public class Aluno {

private String nome;
private float notas;
public  int qnt;

public void setNotas(float notas) {
    this.notas += notas;
    qnt++;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getNome() {
    return nome;
}

public float getNotas() {
    return notas;
}


float calcMedia(){

    return notas/qnt;
}

}

/*Desenvolva uma classe Aluno com os atributos privados nome e notas.
Utilize métodos getters e setters para acessar e modificar esses
atributos.Adicione um método calcularMedia que retorna a média das notas
do aluno.*/
2 respostas

Olá João Pedro, tudo bom? como vai?
Dei uma analisada no seu código e achei ele muito bem estruturado, seguindo o enunciado e as boás práticas em Java. Mas posso te dar algumas sugestões de melhorias?

Atributo notas:
O atributo notas é um único float, o que implica que ele acumula a soma das notas. Isso pode não ser p ideal para representar múltiplas notas de um aluno, já que o enunciado sugere que o aluno pode ter várias notas. O mais adequado seria usar uma estrutura para armazenar múltiplas notas, como um array ou uma lista.
(float[])
ou
(List<Float>)

setNotas:
O setNotas(float notas) adiciona a nota ao total (this.notas += notas) e incrementa um contador qnt. Isso funciona para calcular a média, mas não permite armazenar ou recuperar as notas individualmente.
O método aceita um float, mas no main, há uma chamada newAluno.setNotas(8) (passando um int). Em Java, isso é permitido (e que bom), mas pode causar confusão. Não seria mais claro usar 8.0f para consistência? pense nisso

Atributo qnt:
O atributo qnt é público, o que viola o encapsulamento. Ele deveria ser privado, já que é uma variável de controle interna da classe.

calcMedia:
Funciona muito bem para calcular a média (notas / qnt), mas não verifica se qnt é zero, o que pode causar uma divisão por zero (ArithmeticException) se nenhuma nota for adicionada.

Aguardo algum retorno, bons estudos!

oi maria , muito obrigado pelas dicas , realmente não lembre sobre o atributo qnt e a verificação de calcmedia. sobre array e listas , ainda não cheguei em matrizes e arreys ainda .