Estou fazendo um exercício de um curso que diz que preciso fazer um código para calcular a média de nota de uma turma de alunos. A turma é formado de 03 alunos cujo cada qual tem duas provas formadas de duas notas. É necessário criar três classes: Turma, Aluno e Prova.
Quis deixar meu código bem genérico sem hardcode e portanto pesquisei sobre array e passagem de parâmetros. Apesar de meu código compilar corretamente dá a seguinte mensagem ao executar:
Exception in thread "main" java.lang.NullPointerException
O código até o presente momento é:
- Prova
public class Prova {
double[] nota = new double[2];
private double notaFinal = 0;
private int contadorAux = 0;
public double calcularNotaTotal () {
for (; contadorAux < nota.length; contadorAux ++) {
notaFinal += nota[contadorAux];
System.out.println(notaFinal);
}
return notaFinal / contadorAux;
}
}
- Aluno
public class Aluno {
public Prova[] prova = new Prova[2];
private int contadorAux = 0;
private double media = 0;
public double calcularMedia() {
for (;contadorAux < prova.length; contadorAux++) {
media += prova[contadorAux].calcularNotaTotal();
}
return media / contadorAux;
}
}
- Turma
public class Turma {
public Aluno aluno[] = new Aluno[3];
private int contadorAux = 0;
private double media = 0;
public double calcularMedia () {
for (; contadorAux < aluno.length; contadorAux++) {
media += aluno[contadorAux].calcularMedia();
}
return media / contadorAux;
}
}
E por fim, a classe Aplicação que contém o main(String[] args)
:
import java.util.Scanner;
public class Aplicacao {
public static void main(String[] args) {
// TODO Auto-generated method stub
Turma turma = new Turma();
Scanner entrada = new Scanner(System.in);
String aux;
double[] teste = new double[2];
int contadorTurma = 0;
for (; contadorTurma < 1; contadorTurma++) {
for (int contadorAluno = 0; contadorAluno < 1; contadorAluno++) {
for (int contadorProva = 0; contadorProva < 2; contadorProva++) {
for (int contadorNota = 0; contadorNota < 2; contadorNota++) {
//System.out.print("Informe a nota " + contadorNota + " da prova " + contadorProva + " do aluno " + contadorAluno + ": ");
//aux = entrada.nextLine();
//turma[contadorTurma].aluno[contadorAluno].prova[contadorProva].nota[contadorNota] = 1.0; //Double.parseDouble(aux);
}
}
}
}
turma.aluno[0].prova[0].nota[0] = 1.0;
teste[0] = 5.0;
//System.out.println();
System.out.println("Fim");
//System.out.println("A média da turma é: " + turma[contadorTurma].calcularMedia());
}
}
Tentei procurar em alguns fóruns para resolver isso, mas até agora não consegui. Alguém tem uma ideia do que estou errando?