enums - acesso a variaveis enums nao inicializadas??  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
icarocd
JavaBaby
[Avatar]

Membro desde: 12/04/2006 21:46:54
Mensagens: 92
Offline

olá,
estou comecando a caminhada pra fazer a SCJP 1.5, e to fechando esses dias o capitulo 1 da Kathy.
apareceu uma duvida de enum nas questoes do livro que fiquei com uma pulga atras da orelha, vejam se voces saberiam me explicar... O codigo abaixo acessa constantes do enum mas a varivel sequer foi inicializada, entao nao entendi...
valeu rapaziada


public class Enum1
{
static enum A{ A, B }

static A a;

public static void main(String[] args){
System.out.println( a.B.toString() ); //roda sem problemas!
System.out.println( a.toString() ); //erro de nullPointer!
}
}

Engenheiro de Computação com ênfase em Engenharia de Software pela UEFS/BA
SCJP & SCWCD certified
Desenvolvedor com ênfase Java/JEE/JSE/Grails
[Email] [WWW] [MSN]
anderson.bonavides
GUJ Master
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 1151
Offline

A variável de referência não ta acessando o ENUM...

Corrigindo:

System.out.println( a.B.toString() );
ou

System.out.println(a.A.toString());


O A e o B refere-se as constantes dentro do ENUM...

Sun Certified Java Programmer 5.0
anderson.bonavides
GUJ Master
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 1151
Offline

Só para que fique mais claro no momento vc pode considerar que a variavel static é previamente conhecido pelo meto main...

Sun Certified Java Programmer 5.0
anderson.bonavides
GUJ Master
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 1151
Offline

Só para que fique mais claro no momento vc pode considerar que a variavel static é previamente conhecido pelo metodo main...

Sun Certified Java Programmer 5.0
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

bom, lembre-se as variaveis tanto static quanto nao static... elas recebem seus valores padrao.. se for um int recebe 0 se for um objeto recebe null, como enum é um tipo especial, entao:

refere-se a null, porem vc tentou usar uma variavel que refere-se a null entao eh lançada uma exceção..

se eu tiver errado a galera me corrige ai tb to estudando para scjp porem tem mais de 1 semana sem pegar no livro

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
icarocd
JavaBaby
[Avatar]

Membro desde: 12/04/2006 21:46:54
Mensagens: 92
Offline

bom galera valeu ai, mas ninguem respondeu o que eu perguntei de fato!
minha duvida está na instrucao que roda certo, e nao na que roda errado, do exemplo(2ª).

o que quero saber é o que porquê de uma variavel de instancia que tem valor null poder acessar membros estaticos do seu tipo.

Engenheiro de Computação com ênfase em Engenharia de Software pela UEFS/BA
SCJP & SCWCD certified
Desenvolvedor com ênfase Java/JEE/JSE/Grails
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team