[Resolvido] Erro na execução

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);
	
	}



}

}[/code]

Você criou um array de Aluno é ta tentando passa valores como nome e nota, isso tá errado.

Se você tem um array de Aluno, você precisa passar um Aluno para o array.

Cria um objeto Aluno, insere os valores no objeto e depois atribui o objeto ao array.

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.

Consegui entender meu erro agora, obrigado.
Obs: Vou colocar meu codigo final abaixo, caso alguem queira me dar alguma dica fique a vontade.

[code]public class Aluno {

private String nome;
private double p1, p2, media;

public void setNome(String nome){

	this.nome = nome;

}

public String getNome(){

	return this.nome;

}

public void setP1(double p1){

	if(p1<0 || p1>10){
	
	System.out.println("Erro a p1 nao foi computada.");
	
	} else {
	
		this.p1 = p1;
	
	}

}

public double getP1(){

	return this.p1;

}

public void setP2(double p2){

	if(p2<0 || p2>10){
	
		System.out.println("Erro a p2 nao foi computada.");
	
	} else {
	
		this.p2 = p2;
	
	}

}

public double getP2(){

	return this.p2;

}

public void setMedia(){

	this.media = (p1 + p2) / 2;

}

public double getMedia(){

	return this.media;

}

}[/code]

[code]import java.util.Scanner;

public class Principal {

public static void main(String args[]){

	double converte;
	String captura;
	Aluno[] aluno = new Aluno[2];

	for( int cont = 0; cont < 2; cont++){
	
		Scanner entrada = new Scanner(System.in);
		aluno[cont] = new Aluno();

		System.out.println("Digite o nome do Aluno: ");
			captura = entrada.nextLine();
			aluno[cont].setNome(captura);
	
		System.out.println("Digite a nota da P1: ");
			captura = entrada.nextLine();
			converte = Double.parseDouble(captura);
			aluno[cont].setP1(converte);
	
		System.out.println("Digite a nota da P2: ");
			captura = entrada.nextLine();
			converte = Double.parseDouble(captura);
			aluno[cont].setP2(converte);
		
		aluno[cont].setMedia();
	
	}
	
	System.out.println("\n==\n");
	
	for( int cont2 = 0; cont2 < 2; cont2++){
		
		System.out.println(aluno[cont2].getNome());
	
		System.out.println(aluno[cont2].getP1());
	
		System.out.println(aluno[cont2].getP2());
		
		System.out.println(aluno[cont2].getMedia());
	
	}



}

}[/code]