Classes Interiores - o Retorno

3 respostas
J

Certo … Só para eu entender

jMenu1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenu1ActionPerformed(evt); } });

Aqui estou definindo uma classe anônima com um método actionPerformed …

agora … new java.awt.event.ActionListener significa que a minha classe é um ActionListener ?

3 Respostas

Rafael_Steil

Voce apenas esta criando uma instancia de tal classe, nada mais.

Rafael

ps: nao crie topicos extras se vc ja fez a mesma pergunta em outro topico, isso gera confusao no forum.

Elvis.The.Pelvis

Nào não. Na verdade, quando voce cria uma classe anônima, ou ela implementa a interface declarada ou é classe filha dela. Tanto é que essa é uma das regras que tem que ser seguidas por classes anônimas. Logo, neste exemplo, a sua classe anônima é uma classe, filha de Object, que implementa a interface ActionListener.

Se ActoinListener fosse uma classe, sua classe anônima seria uma classe filha de ActionListener. É assim que o compilador e a JVM a enxergam.

Paulo_Silveira

esta classe anonima chega a ser até gerada o bytecode para ela, dando permissoes especias (ela pode acessar os atributos da classe Outter)

o nome do .class gerado é NomeDaOutter$N.class

onde N começa em 1, e vai seguindo a numeração.

É utilizado o $ pois se utilizasse o ponto poderíamos ter problemas em sistemas operacionais, e na hora do reflections poderia ser interpretado como um pacote

Criado 8 de janeiro de 2003
Ultima resposta 9 de jan. de 2003
Respostas 3
Participantes 4