Eu estou tendo o seguinte erro quando digito o nome do aluno:
[code]
C:\Users\Alan\Desktop\Java>java Principal
Digite o nome do Aluno:
a
Exception in thread “main” java.lang.NullPointerException
at Principal.main(Principal.java:16)
C:\Users\Alan\Desktop\Java>[/code]
Se vocês puderem me ajudar eu agradeço.
O codigo segue abaixo.
[code]public class Aluno {
String nome;
double p1, p2, media;
}[/code]
[code]import java.util.Scanner;
public class Principal {
public static void main(String args[]){
String captura;
Aluno[] aluno = new Aluno[2];
for( int cont = 0; cont < 2; cont++){
Scanner entrada = new Scanner(System.in);
System.out.println("Digite o nome do Aluno: ");
aluno[cont].nome = entrada.nextLine();
System.out.println("Digite a nota da P1: ");
captura = entrada.nextLine();
aluno[cont].p1 = Double.parseDouble(captura);
System.out.println("Digite a nota da P2: ");
captura = entrada.nextLine();
aluno[cont].p2 = Double.parseDouble(captura);
aluno[cont].media = (aluno[cont].p1 + aluno[cont].p2) / 2;
}
System.out.println("\n==\n");
for( int cont2 = 0; cont2 < 2; cont2++){
Scanner entrada = new Scanner(System.in);
System.out.println(aluno[cont2].nome);
System.out.println(aluno[cont2].p1);
System.out.println(aluno[cont2].p2);
System.out.println(aluno[cont2].media);
}
}
for( int cont = 0; cont < 2; cont++){
aluno[cont] = new Aluno(); // primeiro você deve criar instanciar um objeto da classe aluno.
Scanner entrada = new Scanner(System.in);
System.out.println("Digite o nome do Aluno: ");
aluno[cont].nome = entrada.nextLine();
System.out.println("Digite a nota da P1: ");
captura = entrada.nextLine();
aluno[cont].p1 = Double.parseDouble(captura);
System.out.println("Digite a nota da P2: ");
captura = entrada.nextLine();
aluno[cont].p2 = Double.parseDouble(captura);
aluno[cont].media = (aluno[cont].p1 + aluno[cont].p2) / 2;
}
Obrigado, o programa rodou aqui depois que fiz o que vocês disseram.
Então no caso o que eu tinha feito foi criar um vetor de objetos, mas sem objeto nas posições do vetor?
[quote=Starkk]Obrigado, o programa rodou aqui depois que fiz o que vocês disseram.
Então no caso o que eu tinha feito foi criar um vetor de objetos, mas sem objeto nas posições do vetor?[/quote]
Você criou um array de um tipo especifico que era Aluno. Esse array então só aceita objetos do tipo Aluno. Por isso você precisa criar o objeto aluno, setar os valores em aluno, para então inserir esse objeto em uma posição do array.
Se você tivesse criar um array de String (String[]) só poderia inserir String… e assim por diante.