quarta-feira, 19 de dezembro de 2012

Classe interna anonima


Vamos ver agora a criação de uma classe interna anônima ... é isto mesmo que você está pensando. Esta classe tem todas as características de uma classe interna, somente ela não é nomeada.

Para tornar o nosso exemplo mais completo vamos criar uma interface. Por quê você vai me perguntar! Porque normalmente as classes anônimas são criadas a partir de definições de interfaces como por exemplo os listeners do swing.

Nossa interface define um atributo privado, que fica exposto somente pelo método getValor(). Este atributo recebe seu valor na construção da classe como podemos ver no construtor.



Como criamos a classe anônima? Percebam o comando

 return new InterfaceExemploClasseAnonima(i) { ...

Estamos chamando o construtor da interface, como temos um método abstrato temos que defini-lo também. É por isto que definimos o método f(). Caso esta definição não fosse feita, o compilador daria erro.

Você percebeu que não definimos o nome da classe? É por isto que chamamos de classe anônima. Um exemplo comum é apresentado no extrato de código abaixo para criar um ActionListener como uma classe anônima:


    //utilizando classe interna anonima
    myBotao.addActionListener(

      new ActionListener() {
        public void actionPerformed(ActionEvent e) { frame.toFront(); }
    });
O resultado de rodarmos a nossa classe de exemplo é

Nenhum comentário:

Postar um comentário