Acessar método de uma instância em toda a classe Main

Olá pessoal

é o seguinte:

No código abaixo eu instancio duas classes e raiz, sendo que não estou conseguindo acessar os seus métodos em outras áreas do código…

Por que?

[code] public static void main(String[] args) {
Scanner ler=new Scanner(System.in);

	int op;
	do{
		System.out.println(" 1. Incluir\n 2. Consulta\n 3. Listar\n 4. Finalizar\n 0. Finalizar");
		op=ler.nextInt();
			
	 switch (op){
		case 1:{				
			if (cont<=3){					
				cadastro();					
				raiz r=new raiz(infor); //instância de raiz
				 cont++;					
					}else{							
						cadastro();
						 nó no=new nó(infor, pai, f_esq, f_dir); //instância de nó
					}							
		}
		break;
		
		case 2:{
			no. //não consigo acessar os métodos de "no" instanciado logo acima...
		}
		break;
	 }
	}while(op!=0);

}

}[/code]

Seu “no” logo a cima, tem o escopo do case 1 apenas. Para acessa-lo no case 2, faça a declaração da variável antes

nó no = null;

Mas cuidado que se você só iniciar o objeto no case 1, se chegar no case 2 sem ele ter sido iniciado você tera uma excessão de nullpointer

opa! valew cronos…
mas eu vou ter q fazer isso em todos os cases :roll: ?

Não se você instaciar as classes antes do Switch.
Tenta ai.

Flw

claro Bruno…
não fiz isso porque há uma opção de cadastro e eu preciso primeiro da informação a ser cadastrada pra depois passar para o constritor da classe. Sendo assim só posso instância-la depois de ter esta informação… :wink:

Faça o que o CrOnNoS falou colocando essa linha de código antes do switch, mas isso não impede um NullPointerException.

Oi,

Em relação ao NullPointer, você deverá fazer a comparação IF instanciado (!= null) em todos os cases antes de utiliza-los. Ou então criar um construtor default() sem argumentos, apenas para inicialização da classe! evitando NullPointer quando for utiliza-la!

:wink:

Tchauzin!