Внутренний класс vs. Статический вложенный

Всем привет!

Реализуя свой учебный связанный список, залез посмотреть как реализован LinkedList в пакете java.util, да бы последовать примеру. При виде этой красоты, у меня возникло пару вопросов:

  1. С какой целью разработчики этого класса сделали класс Node вложенным и статическим, а класс ListItr внутренним, но не статическим?
  2. Как так получается, что "вроде бы" находясь внутри статического контекста класса Node, мы получаем доступ через ключевое слово this к не статическим членам класса?

Ниже приведен фрагмент кода из класса LinkedList пакета java.util.

Этот код находится внутри класса LinkedList пакета java.util


Ответы (1 шт):

Автор решения: Igor

внутри статического контекста класса Node, мы получаем доступ через ключевое слово this к не статическим членам класса?

"Статический вложенный класс" - означает, что класс не привязан к объекту класса, который содержит это вложенное oпределение классa. И все. Никакого отношения к [не]статическим полям/методам вложенного класса это не имеет.

→ Ссылка