Este documento describe los diferentes tipos de clases internas o anidadas en Java, incluyendo clases internas estáticas, no estáticas, y clases anónimas. Las clases internas pueden acceder a los miembros de la clase externa que las contiene, mientras que las clases internas estáticas no pueden acceder directamente a los miembros no estáticos. Las clases anónimas se usan comúnmente para manejar eventos y heredan de una clase o implementan una interfaz sin nombre.