¿Qué es una clase interna anónima?

En la programación de computadoras orientada a objetos, una clase interna anónima es una clase que se declara dentro de un método pero no tiene nombre. Una clase interna anónima tiene varias restricciones que la hacen diferente de una clase normal, incluida una restricción en el alcance de las variables a las que puede acceder. Hay algunas situaciones muy específicas en las que el uso de una clase interna anónima puede hacer que el código fuente sea más legible, pero se usa principalmente para ayudar a hacer cumplir la encapsulación donde la generación de clases separadas podría complicarlo.

La encapsulación es el concepto en la programación orientada a objetos (OOP) que un objeto y sus componentes deberían estar protegidos de alguna manera y vinculados al objeto. Las clases internas anónimas, y las clases internas en general, ayudan a realizar la encapsulación de objetos particularmente complejos. En lugar de tener que crear una clase que se basa en una externa separada, unirlos de manera artificial y potencialmente exponiendo algunos de los componentes, una clase interna anónima puede t.es decir, los dos juntos sólidamente.

En algunos lenguajes de programación, una clase interna anónima puede ayudar a superar las restricciones de la herencia única. Si un objeto hereda de una clase pero luego necesita acceder a otra, se puede generar una clase interna sobre la marcha y luego pasar a los manejadores apropiados. Esta técnica es común con las devoluciones de llamada y los oyentes de eventos. La única alternativa sería crear una segunda clase completa en la que solo se anulen uno o dos métodos.

.

Las clases internas anónimas tienen algunas restricciones para evitar la interrupción de la encapsulación y para hacer cumplir el alcance. La restricción principal es que una clase interna anónima no puede acceder a variables del método en el que reside a menos que esas variables se declaren como finales. Esto se debe a que la clase interna podría continuar funcionando más allá de la vida de la clase y el método en el que anuda. Las variables de la envolturaLa clase sería destruida una vez que terminó su vida, por lo que las referencias que sostuvieron la clase interna se volverían instantáneamente inválidas. La única excepción a esto es una variable final, porque existirá más allá de la instancia.

Uno de los usos más específicos para una clase interna anónima es la protección de código. Muchos idiomas OOP proporcionan un mecanismo llamado reflexión. La reflexión permite que un programa diseccione otra clase y vea cuáles son sus variables y métodos miembros, pero no el código en sí. Al usar una clase interna anónima, el contenido de la clase interna está protegido de la reflexión y el funcionamiento interno de la clase más grande puede ocultarse efectivamente.

OTROS IDIOMAS