我知道this(...)
用于从一个构造函数调用另一个构造函数。但是我们能否使用new
来达到相同的效果?
更明确地说,第二行代码是否有效?如果它是有效的(因为编译器没有抱怨),那么为什么输出是null
而不是Hello
?
class Test0 {
String name;
public Test0(String str) {
this.name= str;
}
public Test0() {
//this("Hello"); // Line-1
new Test0("Hello"){}; // Line-2
}
String getName(){
return name;
}
}
public class Test{
public static void main(String ags[]){
Test0 t = new Test0();
System.out.println(t.getName());
}
}