Una clase anónima es una clase sin nombre, definida en la misma línea de código donde se crea el objeto de la clase. Esta operación se lleva a cabo en el interior de un método de otra clase, por ello la clase anónima es considerada como una clase
interna anidada.
Conviene ser muy cuidadoso respecto a los aspectos tipográficos de la definición de clases anónimas, pues al no tener nombre dichas clases suelen resultar difíciles de leer e interpretar. Se aconseja utilizar las siguientes normas tipográficas:
- Se aconseja que la palabra new esté en la misma línea que el resto de la expresión.
- Las llaves se abren en la misma línea que new, después del cierre del paréntesis de los argumentos del constructor.
- El cuerpo de la clase anónima se debe identar respecto a las líneas anteriores de código para que resulte claramente distinguible.
- El cierre de las llaves va seguido por el resto de la expresión en la que se ha definido la clase anónima. Esto puede servir como indicación tipográfica del cierre. Puede ser algo así como }; o });
En el siguiente ejemplo podemos observar el uso de como realizar la clase anónima:
public class Operaciones {
public void imprimir(){
System.out.println("imprimir original");
}
}
Lo primero fue crear una clase la cual contiene una determina operación o método:
public class Externa {
Operaciones op = new Operaciones(){
// definición de la clase anonima
public void imprimir(){
System.out.println("Imprimir anonimma");
}
};// creación del objeto termina con ;
void proceso(){
op.imprimir();
}
Y luego en la segunda parte del código vemos la creación de la clase anónima.
De este ejemplo se deducen dos cosas importantes: en primer lugar, la variable op contiene una instancia del objeto de la clase anónima, no de la clase Operaciones. En
segundo lugar, dado que la definición de la clase anónima se lleva a cabo en una línea a código, esta debe terminar con ;