当前位置: 首页 > 面试题库 >

“ this()”方法是什么意思?

刘胜泫
2023-03-14
问题内容

我遇到了这段代码,我不退出这一行来理解它的含义或它在做什么。

public Digraph(In in) {
    this(in.readInt()); 
    int E = in.readInt();
    for (int i = 0; i < E; i++) {
        int v = in.readInt();
        int w = in.readInt();
        addEdge(v, w); 
    }
}

我知道是什么this.method()还是this.variable什么,但是什么是this()


问题答案:

这是构造函数重载:

public class Diagraph {

    public Diagraph(int n) {
       // Constructor code
    }


    public Digraph(In in) {
      this(in.readInt()); // Calls the constructor above. 
      int E = in.readInt();
      for (int i = 0; i < E; i++) {
         int v = in.readInt();
         int w = in.readInt();
         addEdge(v, w); 
      }
   }
}

您可以通过缺少返回类型来判断此代码​​是构造函数,而不是方法。这与super()在构造函数的第一行中调用以初始化扩展类非常相似。您应该在构造函数的第一行中调用this()(或的任何其他重载this()),从而避免构造函数代码重复。

您也可以看看这篇文章:Java中的构造方法重载-最佳实践



 类似资料:
  • 问题内容: 8个月前关闭。 在jquery中,什么意思和何时使用? 问题答案: JavaScript中的代码非常特殊且功能强大。这可能意味着任何事情。 首先让我们看一下jQuery对jQuery的使用,然后再在JavaScript中更广泛地讨论它。 特别是在jQuery中 在用jQuery编写的代码中, 通常 指的是作为要调用的函数的主题的DOM元素(例如,在事件回调中)。 例如jQuery的事件

  • 问题内容: 这是代码: 但是当我将“ #round”更改为“ this”时。它不会工作。为什么?(实际上是可行的,但是当我将它们放入setInterval()时,它将无法工作) 更改为“ this”,将无法使用。 问题答案: 是对调用当前函数的成员的引用… 那么您可以将其包装在jquery函数中以选择它,就像选择其他选择器一样。 因此调用匿名函数,这样它就不会被可引用成员调用,因此它默认为该对象。

  • 什么是 this? 我们已经列举了各种不正确的臆想,现在让我们把注意力转移到 this 机制是如何真正工作的。 我们早先说过,this 不是编写时绑定,而是运行时绑定。它依赖于函数调用的上下文条件。this 绑定与函数声明的位置没有任何关系,而与函数被调用的方式紧密相连。 当一个函数被调用时,会建立一个称为执行环境的活动记录。这个记录包含函数是从何处(调用栈 —— call-stack)被调用的,

  • 问题内容: 我一直在PHP中看到该变量,但我不知道它的用途。我从来没有亲自使用过它。 有人可以告诉我该变量在PHP中如何工作吗? 问题答案: 它是对当前对象的引用,在面向对象的代码中最常用。 例: 这会将’Jack’字符串存储为所创建对象的属性。

  • 问题内容: 在一个JavaScript文件中,我看到了: 声明并分配给它的目的是什么? 问题答案: 我将以一个插图开始这个答案: 我的回答最初是用jQuery演示的,只是略有不同: 由于在通过调用新函数更改范围时会经常更改,因此无法使用原始值访问原始值。将其别名为可以使您仍然访问的原始值。 就个人而言,我不喜欢使用as作为别名。它指的是什么几乎是不明显的,特别是如果函数长于几行。我 总是 使用更具

  • 为什么要用 this? 如果对于那些老练的 JavaScript 开发者来说 this 机制都是如此的令人费解,那么有人会问为什么这种机制会有用?它带来的麻烦不是比好处多吗?在讲解 如何 有用之前,我们应当先来看看 为什么 有用。 让我们试着展示一下 this 的动机和用途: function identify() { return this.name.toUpperCase(); } f