什么是构造函数链接,它是如何在java中实现的?
什么是构造函数链接以及它在java中是如何实现的,请给我一个例子当您有公共嵌套类时,构造函数链接会被使用 e、 g 要创建一个C,你需要一个B,它需要作为a什么是构造函数链接,它是如何在java中实现的?,java,Java,什么是构造函数链接以及它在java中是如何实现的,请给我一个例子当您有公共嵌套类时,构造函数链接会被使用 e、 g 要创建一个C,你需要一个B,它需要作为a C c = new A().new B().new C(); 这会破坏封装,每个类中都应该有一个方法,可以返回嵌套类,而不是在外部创建它们。当所有构造函数引用类中的单个构造函数时,构造函数链接是一种技术,为省略的参数提供默认值。目标是明确对象构造并减少冗余: public static final class Foo{ priva
C c = new A().new B().new C();
这会破坏封装,每个类中都应该有一个方法,可以返回嵌套类,而不是在外部创建它们。当所有构造函数引用类中的单个构造函数时,构造函数链接是一种技术,为省略的参数提供默认值。目标是明确对象构造并减少冗余:
public static final class Foo{
private final String a;
private final String b;
private final String c;
private final String d;
public Foo(String a, String b, String c, String d){
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
public Foo(String a, String b, String c){
this(a, b, c, "d");
}
public Foo(String a, String b){
this(a, b, "c");
}
}
你为什么不提出你的想法,为什么你这么想?(与要求我们在网上为您查找众多教程中的一个不同…)这称为伸缩构造函数。构造函数链接正在调用父构造函数。我在这里看到了这个术语的用法,正如我所描述的(即)。谷歌搜索伸缩构造器给出了J.布洛赫的引用,所以我认为这两个可能是同义词。
public static final class Foo{
private final String a;
private final String b;
private final String c;
private final String d;
public Foo(String a, String b, String c, String d){
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
public Foo(String a, String b, String c){
this(a, b, c, "d");
}
public Foo(String a, String b){
this(a, b, "c");
}
}