Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是构造函数链接,它是如何在java中实现的?_Java - Fatal编程技术网

什么是构造函数链接,它是如何在java中实现的?

什么是构造函数链接,它是如何在java中实现的?,java,Java,什么是构造函数链接以及它在java中是如何实现的,请给我一个例子当您有公共嵌套类时,构造函数链接会被使用 e、 g 要创建一个C,你需要一个B,它需要作为a C c = new A().new B().new C(); 这会破坏封装,每个类中都应该有一个方法,可以返回嵌套类,而不是在外部创建它们。当所有构造函数引用类中的单个构造函数时,构造函数链接是一种技术,为省略的参数提供默认值。目标是明确对象构造并减少冗余: public static final class Foo{ priva

什么是构造函数链接以及它在java中是如何实现的,请给我一个例子

当您有公共嵌套类时,构造函数链接会被使用

e、 g

要创建一个C,你需要一个B,它需要作为a

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");
    }
}