Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是;将此限定为“;用java构造mean?_Java_Jls - Fatal编程技术网

什么是;将此限定为“;用java构造mean?

什么是;将此限定为“;用java构造mean?,java,jls,Java,Jls,在项目“第22项:喜欢静态成员类胜过非静态”中,Josh Bloch说: 非静态成员类的每个实例都与 其包含类的封闭实例。在非静态对象的实例方法内 成员类,您可以调用封闭实例上的方法或获取引用 使用限定的this构造返回封闭实例 他对这个构造进行限定是什么意思?如果没有限定符,x()将递归。使用限定符,将调用封闭实例的x()方法 class Envelope { void x() { System.out.println("Hello"); } class Enclosure

在项目“第22项:喜欢静态成员类胜过非静态”中,Josh Bloch说:

非静态成员类的每个实例都与 其包含类的封闭实例。在非静态对象的实例方法内 成员类,您可以调用封闭实例上的方法或获取引用 使用限定的this构造返回封闭实例


他对这个构造进行限定是什么意思?

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

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

非静态成员类具有对封闭类实例的隐式引用。此术语的限定值是指封闭类的实例。如果封闭类是
A
,内部类是
B
,则可以将
B
A
的封闭引用称为
A

EnclosingType。在计算机科学术语中,限定符或限定标识符是名称(选择路径)
x.y.z
。这是java@pst+1之前的版本,因为您在注释中回答了它。我如何接受你的答案?一个标识符几乎不是答案——它需要一些上下文来解释它为什么有用。我现在没有足够的时间来公正地对待它。