Sobes.tech
Junior

O que são classes anônimas em Java e onde podem ser aplicadas?

sobes.tech IA

Resposta da IA

As classes anónimas em Java são classes locais sem nome. Elas são declaradas e criadas ao mesmo tempo. Geralmente são usadas quando é necessária uma implementação única de uma interface ou a extensão de uma classe abstrata ou comum.

Aplicações de classes anónimas:

  • Manipuladores de eventos em GUI: São frequentemente usados para criar manipuladores de cliques em botões ou outras ações do usuário.

    // Exemplo com Swing ActionListener
    JButton button = new JButton("Clique em mim");
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("Botão pressionado!");
        }
    });
    
  • Implementação de interfaces com um método abstrato (interfaces SAM): Antes do aparecimento de expressões lambda, era a principal forma de implementar funcionalidades para essas interfaces.

    // Exemplo com Runnable
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("Thread iniciada");
        }
    }).start();
    
  • Criação de objetos "em tempo de execução": Quando é necessário criar rapidamente um objeto com comportamento modificado em relação a uma classe existente sem precisar criar uma classe nomeada separada.

    // Exemplo de extensão de uma classe abstrata
    AbstractList<String> cityList = new AbstractList<String>() {
        private String[] cities = {"Moscou", "São Petersburgo"};
    
        @Override
        public String get(int index) {
            return cities[index];
        }
    
        @Override
        public int size() {
            return cities.length;
        }
    };
    System.out.println(cityList.get(0)); // Vai imprimir: Moscou
    

As classes anónimas têm acesso a variáveis locais finais ou efetivamente finais no escopo em que são declaradas. Elas não podem ter membros estáticos e não podem ser abstratas ou finais.