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