Permisos de acceso en java
1. Las clases internas pueden también ser private y protected (las clases normales sólo pueden ser public y package). Esto permite nuevas posibilidades de encapsulación.
2. Los métodos de las clases internas acceden directamente a todos los miembros, incluso private, de la clase contenedora.
3. También la clase contenedora puede acceder –si dispone de una referencia- a todas las variables miembro (incluso private) de sus clases internas.
4. Una clase interna puede acceder también a los miembros (incluso private) de otras clases internas definidas en la misma clase contenedora.
Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra