“合格的”构造在java中意味着什么?

时间:2012-06-30 19:24:27

标签: java jls

Effective Java项内“项目22:偏爱非静态的静态成员类”Josh Bloch说:

  

非静态成员类的每个实例都与一个隐式关联   包含其包含类的实例。在非静态的实例方法中   在成员类中,您可以在封闭实例上调用方法或获取引用   使用限定的此构造到封闭实例。

合格本建筑是什么意思?

2 个答案:

答案 0 :(得分:34)

如果没有限定符,x()会递归。使用限定符,将调用封闭实例的x()方法。

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

答案 1 :(得分:9)

非静态成员类具有对封闭类的实例的隐式引用。 合格此术语是指封闭类的实例。如果封闭类为A,内部类为B,则可以AB的封闭引用作为A.this