Java中的“限定这个”构造是什么意思?
在 Effective Java 中,“Item 22: Favor static member classes over nonstatic”中,Josh Bloch 说:
非静态成员类的每个实例都与其包含类的封闭实例隐式关联。在非静态成员类的实例方法中,可以调用封闭实例上的方法,也可以使用限定的 this 构造获取对封闭实例的引用。
他所说的“限定此构造”是什么意思?
在 Effective Java 中,“Item 22: Favor static member classes over nonstatic”中,Josh Bloch 说:
非静态成员类的每个实例都与其包含类的封闭实例隐式关联。在非静态成员类的实例方法中,可以调用封闭实例上的方法,也可以使用限定的 this 构造获取对封闭实例的引用。
他所说的“限定此构造”是什么意思?
如果没有限定符,将递归。使用限定符,将改为调用封闭实例的方法。x()
x()
class Envelope {
void x() {
System.out.println("Hello");
}
class Enclosure {
void x() {
Envelope.this.x(); /* Qualified*/
}
}
}
非静态成员类具有对封闭类的实例的隐式引用。限定的此术语是指封闭类的实例。如果封闭类是 ,而内部类是 ,则可以将 from 的封闭引用寻址为 。A
B
A
B
A.this