Java 链接构造函数的目的是什么?

Java 链接构造函数的目的是什么?,java,Java,我是一个新手,有人可以帮助我了解构造函数链接有用的场景类型,以及在程序中使用构造函数链接的目的是什么?这是代码 public class Constructor_chaining { Constructor_chaining(){ System.out.println("Default constructor..."); } Constructor_chaining(int i){ this(); System.out.println("Single parameteri

我是一个新手,有人可以帮助我了解构造函数链接有用的场景类型,以及在程序中使用构造函数链接的目的是什么?这是代码

public class Constructor_chaining {
Constructor_chaining(){
    System.out.println("Default constructor...");
}
Constructor_chaining(int i){
    this();
    System.out.println("Single parameterized constructor...");
}
Constructor_chaining(int i,int j){
    this(j);
    System.out.println("Double parameterized constructr...");
}
public static void main(String args[]){
    Constructor_chaining obj=new Constructor_chaining(10,20);
}}

它的目的是减少代码重复。如果没有构造函数链接,您通常必须在另一个构造函数中重复一个构造函数中的内容


典型的情况是默认参数的实现,其中一个构造函数A调用另一个构造函数B,为一个或多个参数提供固定值,同时直接传递其他参数。

它可以用来避免代码重复。让我们举一个例子:

public class Test
{
    int a;
    int b;

    public Test(int a)
    {
        this.a = a;
    }

    public Test(int a, int b)
    {
        this(a);
        this.b = b;
    }

    public static void main(String args[])
    {
        Test t1 = new Test(1);
        Test t2 = new Test(1,2);
        System.out.println(t1.a + " " + t1.b);
        System.out.println(t2.a + " " + t2.b);
    }
}
这里,双参数构造函数调用单参数构造函数来初始化字段a,因此您不必在双参数构造函数中重复单参数构造函数中的所有代码。当然,在这个小例子中,它看起来似乎是无用的,但是想象一下,您有很多字段需要初始化。这将非常有用

关于这个问题:根据:

在实例方法或构造函数中,这是对当前对象的引用

在构造函数中,还可以使用this关键字调用同一类中的另一个构造函数。这样做称为显式构造函数调用


因此,在类构造函数链接的情况下,这用于调用没有参数的构造函数。

避免代码重复通常在这种情况下,这没有多大帮助。如果你有一个超类,如果你没有一个参数化的构造函数,那么你提到的例子就是helpfulTopic starter太懒了,无法阅读docsgot clear。谢谢!