

补充:this关键字的两种用法
①在方法中引用成员变量(尤其是区分同名的局部变量)
②在构造方法中调用其他构造方法(一定出现在第一句)
这道题就用到了用法②
public class Main {
public Main(){
System.out.println(“构造方法一被调用了”);
}
public Main(int x){
this();
System.out.println(“构造方法二被调用了”);
}
public Main(boolean b){
this(1);
System.out.println(“构造方法三被调用了”);
}
public static void main(String[] args) {
…………………………………………………………………
}
我们需要在主函数里补充代码使得同时调用三个构造方法
通常写this的时候,都是指“这个对象”或者“当前对象”,而且它本身表示对当前对象的引用。在构造器中,如果为this添加了参数列表,那么就有不同的含义。这将产生对符合此参数列表的某个构造器的明确调用;这样调用其他构造函数就有了直接的途径。这道题考察的就是 对this方法的熟练使用。
我们先观察一下啊,在三个类方法里面,虽然方法名相同但是参数列表不同所以可以用this关键字来调用不同参数对应的构造方法。
比如第一个构造方法是无参类型,第二个构造方法是整数类型,第三个方法是布尔型。并且第三个方法内还会执行第二个方法的整数型,同理,第二个方法的调用还会执行第一个方法的空参型。就是套娃。。。。

也就是说,这道题看起来很复杂,实际上只需要通过调用第三个方法就可以同时完成调用所有的构造方法。那么一句简单的Main a=new Main(true);就可以实现这一个过程