请确认我是this
关键字引用其拥有的类,this()
方法引用其拥有的类构造函数。
class Tester {
private String blogName;
public Tester() {
this("stackoverflow");
}
public Tester(String str) {
this.blogName = str;
}
public String getBlogName() {
return blogName;
}
}
如果这些之间存在其他差异,这对我有帮助。
答案 0 :(得分:1)
this
是对代表当前方法的对象的引用。 this(anything)
是构造函数的调用。
答案 1 :(得分:0)
第一个示例在默认构造函数中调用重载的构造函数。您可以通过这种方式调用所有重载的构造函数。它必须是构造函数中的第一行,就像调用super()。
第二个显示特殊名称this
如何引用类中的当前实例。它只需要整理名称重复:
public class ThisDemo {
private static final String DEFAULT_VALUE = "REQUIRED";
private String value;
public ThisDemo() {
this(DEFAULT_VALUE);
}
publi ThisDemo(String value) {
// Required here because the private member and parameter have same name
this.value = value;
}
public String getValue() {
// Not required here, but I prefer to add it.
return value;
}
}
答案 2 :(得分:0)
this("stackoverflow");
正在调用类中的其他构造函数(这称为委托构造函数)。
this.blogName= str1;
正在为字段 str1
引用的blogName
分配引用。此实例中的this
是冗余的,但用于将字段名称歧义为具有相同名称的函数参数。
答案 3 :(得分:0)
this
是Java中的关键字,它表示该类的当前实例。
this("stackoverflow")
正在调用类中的构造函数,这将是一个重载调用。您可以通过这种方式调用同一类的任何其他构造函数。