Нестатические внутренние класса называются
inner classes, в русском переводе - просто внутренние.• Внутренний класс имеет доступ ко всем переменным и методам своего внешнего класса
• Может содержать только нестатические методы и поля
• Если хотим получить ссылку на объект внешнего класса, то нужно написать
OuterClass.this• Пример внутреннего класса в jdk -
HashMap.KeySetДля более глубокого понимания внутренних классов прочитайте в Effective Java главу "Предпочитайте статические классы-члены нестатическим".