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

6 respostas
E

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?

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();
							  no=new (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);

	}

}

6 Respostas

CrOnNoS

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

 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

E

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

BrunoFelipe

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

Flw

E

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:

L

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

lina

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!

Criado 23 de agosto de 2009
Ultima resposta 24 de ago. de 2009
Respostas 6
Participantes 5