No taka, że mimo iż to jest klasa wewnętrzna, to możesz odwołać się do niej z innej paczki, innej klasy... etc poprzez obiekt np. klasy nadrzędnej lub bezpośrednio posługując się klasą nadrzędną. Coś na bazie, chciałbym pozmieniać coś w silniku Samochodu, ale z klasy Warsztat. Gdyby silnik był prywatną klasą ( a nie np. obiektem wewnętrznym ), to takiej możliwości by nie było, aby skorzystać z takich metod.
public static void main(String[] args) {
Person x = new Person("M",1337,2115);
Person.Pomoc c = x.new Pomoc(1335);
c.getc();
}
Robisz to w tej samej klasie, bo main jest statyczna i jest w tej samej klasie co klasa PERSON a w klasie Person masz prywatną klasę POMOC , co powoduje że skoro POMOC dla klasy def jest publiczna to możesz to wykonać.
Z innej paczki, innej klasy juz tego nie zrobisz