【问题标题】:What is meant by calling a function by its "unqualified" name?用“非限定”名称调用函数是什么意思?
【发布时间】:2021-09-14 18:08:46
【问题描述】:

这是 Goodrich 所著的 Data Structures and Algorithms in Java 一书第一章的内容使用this 关键字的原因。

允许一个构造函数体调用另一个构造函数体。当一个类的一个方法调用当前同一个类的另一个方法时 例如,这通常是通过使用另一个的(非限定)名称来完成的 方法。但是调用构造函数的语法很特殊。 Java 允许使用 关键字 this 用作一个构造函数体内的方法, 以便调用另一个具有不同签名的构造函数。

为什么它说unqualified另一个方法的名字?

【问题讨论】:

    标签: java function object this instance


    【解决方案1】:

    有两种方法可以从另一个方法调用一个方法。一般来说,你会提到它的名字限定。如果我有一个对象foo 并且它有一个方法frobnicate,我会这样做

    foo.frobnicate();
    

    现在,如果我已经在正确的实例中(例如,我从 foo 上的另一个方法调用 frobnicate),那么我使用特殊变量 this

    this.frobnicate();
    

    但是 Java 允许我们作为快捷方式省略 this 并简单地调用方法名称。以下是使用其不合格名称调用方法的示例:

    frobnicate();
    

    this. 是隐含的。

    另一方面,该段落试图说明的一点是构造函数是特殊的。我们不将构造函数称为foo.frobnicate();我们只是说Foo()。所以必须有特殊的语法才能从另一个构造函数中调用一个构造函数,即this()

    【讨论】:

      猜你喜欢
      • 2013-04-30
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多