Подтвердить что ты не робот

Что означает "квалифицировать эту" конструкцию в java?

В Эффективная Java внутри элемента "Пункт 22: Использовать статические классы членов над нестатическими" Джош Блох говорит:

Каждый экземпляр нестатического класса-члена неявно связан с содержащий экземпляр его содержащего класса. Внутри примера методы нестатического класс-член, вы можете вызывать методы на прилагаемом экземпляре или получить ссылку к охватывающему экземпляру, используя соответствующую конструкцию.

Что он подразумевает под Квалифицированной этой конструкцией?

4b9b3361

Ответ 1

Без квалификатора x() будет возвращаться. С квалификатором вместо этого вызывается метод экземпляра x().

class Envelope {
  void x() {
    System.out.println("Hello");
  }
  class Enclosure {
    void x() {
      Envelope.this.x(); /* Qualified*/
    }
  }
}

Ответ 2

Нестатический класс-член имеет неявную ссылку на экземпляр охватывающего класса. Квалифицированный Этот термин относится к экземпляру охватывающего класса. Если класс-оболочка A, а внутренний класс B, вы можете обратиться к прилагаемой ссылке A от B как A.this.