看看有两个构造函数,如何让一个构造函数调用另一个,因为一个无参构造函数和一个有参构造函数里面的内容有重复。

img


图中两个构造函数,一个是无参,一个是有参,但是两个构造函数里除了this.fileName=fileName,其他的都一模一样,怎么让一个构造函数调用另一个构造函数?

参考这样:

public test() {
    this("test.log");
}

public test(String fileName) {
    this.fileName = fileName;
    // 。。。
}

使用this

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/196872
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:需求:从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印(File类递归练习)
  • 以下回答来自chatgpt:

    可以使用this关键字来调用另一个构造函数。this关键字在构造函数中用于调用当前类的其他构造函数,使得它们可以共享相同的代码。

    具体实现方法如下:

    public class MyClass {
        private String fileName;
    
        public MyClass() {
            this("default.txt");
        }
    
        public MyClass(String fileName) {
            this.fileName = fileName;
            // 其他共用代码...
        }
    }
    

    在上述代码中,无参构造函数调用有参构造函数,并给它传递一个默认参数“default.txt”,从而避免了代码的重复。

    注意:调用其他构造函数的语句必须是构造函数中的第一条语句。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^