答案:只需要在main中添加

Main w1=new Main(true);

但是题干不是要输出三行吗?为什么只调用第三个构造方法,就可以输出三行,而且还是按照一二三的顺序输出的?

这里分别采用只分别使用构造方法一、二、三的方式来解答

Main w1=new Main();
Main w1=new Main(100);
Main w1=new Main(true);

这里可以发现,只使用构造三是可以达到题意的

构造三的允许逻辑:构造三中 第一行是this(1); this就是Main,也就是调用了构造二,而构造二中第一行又是this();也就调用了构造一,这个执行顺序就和C语言的递归是一样的,一条语句需要执行到尽头,才会执行下一条语句,这里把执行所有语句的顺序写下来:

this(1);
this();
System.out.println("构造方法一被调用了");
System.out.println("构造方法二被调用了");
System.out.println("构造方法三被调用了");

参考文献:构造方法

仅供参考,如有更优解,可在评论区参与讨论

届ける言葉を今は育ててる
最后更新于 2022-04-05