Neste tutorial, você aprenderá sobre classes anônimas em Java com a ajuda de exemplos.
Em Java, uma classe pode conter outra classe conhecida como classe aninhada. É possível criar uma classe aninhada sem dar nenhum nome.
Uma classe aninhada que não tem nenhum nome é conhecida como classe anônima.
Uma classe anônima deve ser definida dentro de outra classe. Portanto, também é conhecido como uma classe interna anônima. Sua sintaxe é:
class outerClass ( // defining anonymous class object1 = new Type(parameterList) ( // body of the anonymous class ); )
Classes anônimas geralmente estendem subclasses ou implementam interfaces.
Aqui, o tipo pode ser
- uma superclasse que uma classe anônima estende
- uma interface que uma classe anônima implementa
O código acima cria um objeto object1
,, de uma classe anônima em tempo de execução.
Nota: Classes anônimas são definidas dentro de uma expressão. Portanto, o ponto-e-vírgula é usado no final das classes anônimas para indicar o final da expressão.
Exemplo 1: Classe anônima estendendo uma classe
class Polygon ( public void display() ( System.out.println("Inside the Polygon class"); ) ) class AnonymousDemo ( public void createClass() ( // creation of anonymous class extending class Polygon Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) )
Resultado
Dentro de uma classe anônima.
No exemplo acima, criamos uma classe Polygon. Tem um único método display()
.
Em seguida, criamos uma classe anônima que estende a classe Polygon e substitui o display()
método.
Quando executamos o programa, um objeto p1 da classe anônima é criado. O objeto então chama o display()
método da classe anônima.
Exemplo 2: classe anônima implementando uma interface
interface Polygon ( public void display(); ) class AnonymousDemo ( public void createClass() ( // anonymous class implementing interface Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) )
Resultado
Dentro de uma classe anônima.
No exemplo acima, criamos uma classe anônima que implementa a Polygon
interface.
Vantagens das classes anônimas
Em classes anônimas, os objetos são criados sempre que necessários. Ou seja, os objetos são criados para realizar algumas tarefas específicas. Por exemplo,
Object = new Example() ( public void display() ( System.out.println("Anonymous class overrides the method display()."); ) );
Aqui, um objeto da classe anônima é criado dinamicamente quando precisamos substituir o display()
método.
As classes anônimas também nos ajudam a tornar nosso código conciso.