gpt4 book ai didi

java - "this()"方法是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 20:41:07 26 4
gpt4 key购买 nike

我遇到了这段代码,有这一行我不明白它的含义或它在做什么。

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() 的任何其他重载),从而避免构造函数代码重复。

你也可以看看这个帖子:Constructor overloading in Java - best practice

关于java - "this()"方法是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15867722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com