Регистрация  |  Вход

Доступ к элементу внешнего класса

Иногда в реализации различных задач бывает полезно использовать класс ( Inner Class ), который лежит внутри другого класса. Это может понадобится при созданиии вывода данных в таблицу значений, когда одним из условий является то, что к примеру некоторые поля при выводе должны быть пересчитаны.




Но возникает сложность в получении внутри Inner Class переменных внешнего класса. Для того, что бы все таки получить такой доступ. можно использовать следующий пример, который поможет вам лучше понять как и что работает:

public class OuterClass {

  String instanceVbl; // необходимая переменная
    public void myOuterMethod() {
        InnerClass ic = new InnerClass(this);
        ic.someInnerMethod();
    }
    public class InnerClass { // наш Inner Class
        OuterClass outer; // внутрення переменная для внешнего класса
        public InnerClass (OuterClass outer) {
           this.outer = outer; // получние ссылки
        }
        public void someInnerMethod() {
          String s = outer.instanceVbl + 'appendedStringBits'; // пример вызова переменной
          // do something more useful
        }
    }
}

Таким образом мы достучались до внутренней переменной внешнего класса из Inner Class.

Спасибо Рустаму!