Static vs class class: Если вы объявляете внутренний класс статическим, то экземпляры внутреннего класса не имеют ссылки на внешний класс. Если это не satic, то ваш внутренний объект efectivelly указывает на внешний объект, который его создал (он имеет неявную ссылку, фактически, если вы используете отражение над его конструкторами, вы увидите дополнительный параметр для получения внешнего экземпляра).
Внутренние экземпляры экземпляра внешнего экземпляра: Циркулярная ссылка на случай, если каждый экземпляр указывает другой. Много раз вы используете внутренние классы для элегантного внедрения некоторого интерфейса и доступа к закрытым полям, не реализуя интерфейс с внешним классом. Это означает, что внутренний экземпляр указывает внешний экземпляр, но не означает обратное. Не требуется круговая ссылка.
Закрытие круга: В любом случае, нет ничего плохого в круговых ссылках на Java. Объекты работают красиво, и когда их больше не ссылают, они собираются мусором. Неважно, если они указывают друг на друга.
Outer, Other, Inner Вы хотите иметь три класса? – jjnguy 2008-09-22 23:49:48