Внутренние (не статические) классы, как переменные и методы связаны с объектом внешнего класса. Внутренние классы так же имеют прямой доступ к полям внешнего класса. Такие классы не могут содержать в себе статические методы и поля. Внутренние классы не могут существовать без экземпляра внешнего.
Пример:
// внешний класс
class Outer {
int outer_x = 9;
void test() {
Inner inner = new Inner();
inner.display();
}
// внутренний класс
class Inner {
void display() {
Log.i(TAG, outer_x);
}
}
}
Вопрос 1
В какой очерёдности вызываются конструкторы этих классов?
Вопрос 2
Как будет выглядеть строка обращения к методу display класса Inner?