Olá!
Segue minha resolução:
- Classe Disciplina onde são realizados todos os cálculos.
package br.com.alura.exercicios;
import java.util.ArrayList;
import java.util.List;
public class Disciplina {
private String materia;
private double nota;
private List<Double> listaNotas = new ArrayList<>();
public Disciplina(String materia) {
this.materia = materia;
}
public String getMateria() {
return materia;
}
public void setMateria(String materia) {
this.materia = materia;
}
public double getNota() {
return nota;
}
public void setNota(double nota) {
this.nota = nota;
}
public List<Double> getListaNotas() {
return listaNotas;
}
public void setListaNotas(List<Double> listaNotas) {
this.listaNotas = listaNotas;
}
public void adicionarNota(double notaAdicionada) {
if (notaAdicionada < 0 || notaAdicionada > 10) {
System.out.println("Nota inválida ignorada: " + notaAdicionada);
nota = notaAdicionada;
} else {
listaNotas.add(notaAdicionada);
}
}
public void calculaMedia() {
double soma = 0;
for (double nota : listaNotas) {
soma += nota;
}
double media = soma / listaNotas.size();
System.out.println(String.format("Total de notas válidas: %d",listaNotas.size()));
System.out.println(String.format("Média em %s: %.2f",materia, media));
}
}
- Main para rodar a aplicação:
package br.com.alura.exercicios;
public class Main {
public static void main(String[] args) {
Disciplina matematica = new Disciplina("Matematica");
matematica.adicionarNota(5);
matematica.adicionarNota(4);
matematica.adicionarNota(-3);
matematica.adicionarNota(8);
matematica.adicionarNota(11);
matematica.calculaMedia();
}
}