Olá pessoal!
Estou com um probleminha. estou tentando resgatar os valores que estão em uma classe que está dentro de outra, porém dá o seguinte erro:
Exception in thread “main” java.lang.NullPointerException
at Avaliacao.getMedia(Avaliacao.java:45)
at Avaliacao.toString(Avaliacao.java:52)
at java.lang.String.valueOf(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
at Main.main(Main.java:38)
As classes são:
Aluno;
Avaliação e
Main.
public class Aluno {
private Integer matricula;
private String nome;
private String curso;
private Integer periodo;
private Avaliacao avaliacao;
public Aluno() {
// TODO Auto-generated constructor stub
}
public Aluno(Integer matricula, String nome, String curso, Integer periodo) {
super();
this.matricula = matricula;
this.nome = nome;
this.curso = curso;
this.periodo = periodo;
}
public Integer getMatricula() {
return matricula;
}
public void setMatricula(Integer matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCurso() {
return curso;
}
public void setCurso(String curso) {
this.curso = curso;
}
public Integer getPeriodo() {
return periodo;
}
public void setPeriodo(Integer periodo) {
this.periodo = periodo;
}
public Avaliacao getAvaliacao() {
return avaliacao;
}
public void setAvaliacao(Avaliacao avaliacao) {
this.avaliacao = avaliacao;
}
@Override
public String toString() {
return "Matricula: " + matricula + "\n" + "Nome: " + nome + "\n"
+ "Curso: " + curso + "\n" + "Período: " + periodo;
}
}
public class Avaliacao {
private Double nota1;
private Double nota2;
private Double nota3;
private Double media;
public Avaliacao() {
// TODO Auto-generated constructor stub
}
public Avaliacao(Double nota1, Double nota2, Double nota3, Double media) {
super();
this.nota1 = nota1;
this.nota2 = nota2;
this.nota3 = nota3;
this.media = media;
}
public Double getNota1() {
return nota1;
}
public void setNota1(Double nota1) {
this.nota1 = nota1;
}
public Double getNota2() {
return nota2;
}
public void setNota2(Double nota2) {
this.nota2 = nota2;
}
public Double getNota3() {
return nota3;
}
public void setNota3(Double nota3) {
this.nota3 = nota3;
}
public Double getMedia() {
this.media = (nota1 + nota2 + nota3) / 3;
return media;
}
@Override
public String toString() {
return "Nota1: " + nota1 + "\n" + "Nota2: " + nota2 + "\n" + "Nota3: "
+ nota3 + "\n" + "Media: " + getMedia();
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Aluno a1 = new Aluno();
Avaliacao av = new Avaliacao();
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.println("Digite sua matricula");
a1.setMatricula(input.nextInt());
System.out.println("Digite seu nome");
a1.setNome(input.next());
System.out.println("Digite seu curso");
a1.setCurso(input.next());
System.out.println("Digite seu Periodo");
a1.setPeriodo(input.nextInt());
a1.setAvaliacao(av);
System.out.println("Digite sua 1ª nota");
a1.getAvaliacao().setNota1(input.nextDouble());
System.out.println("Digite sua 2ª nota");
a1.getAvaliacao().setNota2(input.nextDouble());
System.out.println("Digite sua 3ª nota");
a1.getAvaliacao().setNota2(input.nextDouble());
System.out.println(a1);
System.out.println(a1.getAvaliacao());
}
}
Não estou enxergando onde estou errando. Abraços!