Ajuda com Encapsulamento entre outros

Ola pessoal, sou novo no forum e iniciante em programação java, estou precisando de uma ajuda com um projeto que o prof. passou para minha sala.

Um concurso público precisa selecionar (n) candidatos pelas notas de suas provas, deverá ser confeccionado um programa que entre com:

O programa deverá ter as operações de : ( 1 ) ? Incluir; ( 2 ) ? Consultar; ( 3 ) ? Alterar; ( 4 ) ? Excluir; ( 5 ) ? Relatar

O números de candidatos que fizeram o concurso.
O nome dos candidato(a).
A Nota da prova do Candidato(a).

Eu tenho que usar Encapsulamento, Array de Objetos e separar por classes,

blz eu fiz da seguinte forma, uma classe principal que pergunta o que o usuario quer fazer incluir consultar talz, e chama a classe respectiva tipo incluir,

em incluir eu pergunto o nome e nota do candidato e mando para um array de objeto… Alguns trechos do meu programa:

[code]import java.util.Scanner;
class Entrada{
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
Inserir ObtemValor = new Inserir();

	System.out.print("Digite a quantidade de candidatos que realizaram a prova: ");
	int qtdCandidato = KeyBoard.KeyInt();

	boolean verificaErro = false;
	boolean verificaRelata = false;
	int posicao = 0;
	int opcao = 0;

	while(!(verificaRelata)){

		try {
			System.out.print("Digite uma das opcoes do concurso publico: \n ( 1 ) - Incluir ; \n ( 2 ) - Consultar ; \n ( 3 ) - Alterar ; \n ( 4 ) - Excluir ; \n ( 5 ) - Relatar. \n Opcao: ");
			opcao = scan.nextInt();
		} catch(java.util.InputMismatchException e) {
			verificaErro = true;
		}

	if(!(verificaErro)){
		switch(opcao){
			case 1:
				ObtemValor.ObtemValores(posicao);
				posicao++;
			break;

			default:
				break;
		}
	}else{
		System.out.println("Por Favor, digite valores validos! Opcoes Entre 1 - 5.");
		verificaErro = false;
	}

	}	
}

}[/code]

o KeyBoard.KeyInt() e uma classe que meu professor fez em sala que aceita os valores digitados pelo teclado, como o scan(), se precisarem eu passo a classe, eu tentei usar o tratamento de excessao para caso a pessoa digite uma palavra de erro, mas ao inves disso esta dando laco inf.

ai eu chamo uma outra classe inserir:

class Inserir{ public void ObtemValores(int Posicao){ VetorObjetos Array = new VetorObjetos(); System.out.print("Digite o nome do candidato: "); String Candidato = KeyBoard.KeyString(); System.out.print("Digite a nota do candidato: "); String Nota = KeyBoard.KeyString(); Array.setCandNota(Candidato,Nota,Posicao); } }

classe que encapsula:

[code]class Encapsulamento{
private String Candidato;
private String Nota;
private boolean Ativo;

Encapsulamento(String Candidato,String Nota,boolean Ativo){
	this.Candidato = Candidato;
	this.Nota = Nota;
	this.Ativo = Ativo;
}
public void setAtivacao(boolean Ativacao){
	this.Ativo = Ativacao;
}
public void setCandidato(String Candidato){
	this.Candidato = Candidato;
}
public void setNota(String Nota){
	this.Nota = Nota;
}

public boolean getAtivo(){
	return this.Ativo;
}
public String getCandidato(){
	return this.Candidato;
}
public String getNota(){
	return this.Nota;
}

}

[/code]

e a do vetor arrayobjeto:

[code]class VetorObjetos{

Encapsulamento CandidatoNotas[] = new Encapsulamento[100];

public void setCandNota(String Candidato, String Nota, int posicao, boolean Ativo){
	CandidatoNotas[posicao] = new Encapsulamento(Candidato,Nota,Ativo);
}

public Encapsulamento NomeNota(int posicao){
	String Candidato = CandidatoNotas[posicao].getCandidato();
	String Nota = CandidatoNotas[posicao].getNota();
	boolean Ativo = CandidatoNotas[posicao].getAtivo();
	Encapsulamento RetornaValor = new Encapsulamento(Candidato,Nota,Ativo);
	return RetornaValor;
}

public void ResetaVetor(int qtdcandidato){
	int cont = 0;
		while(cont < qtdcandidato){
			CandidatoNotas[cont] = new Encapsulamento(" "," ",true);
			cont++;
		}
	cont = 0;
	}
}

}[/code]

até ai blz,

o ativo serve para quando eu for usar o consultar ele so vai verificar akele que pelo booleano estiver true, os outros que estiverem false ele nao le, isso pela minha logica evitaria o “null pointer exception” so que estou com problema ae, na classe entrada eu reseto o array, pondo tudo para falso, e a inserção de dados esta certo, mas quando vou realizar uma consulta ele esta dando null pointer excpetion como se eu não tivesse alterado nada em vetor objeto,

aproveitando tb, no comeco do meu proj ele pergunta qts candidatos fizeram a prova, ao inves do 100 ali na classe VetorObjetos, eu qria criar um array com a quantidade de candidatos, isso ao instanciar…

Ah eu nao uso o programa usual de java e sim o LJ que o pessoal aki da Univap, uma turma de tcc fez, pq o programa normal de java e mto “pesado”, mas axo que isso nao interfere em nada.

me perdoem se ficou muito grande ou se eu fiz alguma grande bobagem, desde ja agradecido e no aguardo :wink: