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。谢谢!