gpt4 book ai didi

Java构造器设计

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:21 26 4
gpt4 key购买 nike

我在看一个开源代码,有一个构造函数是这样设计的:

public class FeatureSequence2FeatureVector extends Pipe implements Serializable
{
boolean binary;

public FeatureSequence2FeatureVector (boolean binary)
{
this.binary = binary;
}

public FeatureSequence2FeatureVector ()
{
this (false);
}
}

这可能只是一个微不足道的偏好问题,但我会这样做:

public class FeatureSequence2FeatureVector extends Pipe implements Serializable
{
boolean binary = false;

public FeatureSequence2FeatureVector (boolean binary)
{
this.binary = binary;
}
public FeatureSequence2FeatureVector ()
{
}
}

为类变量赋初始值是否有任何可能的负面结果?这两种方式会几乎同样受欢迎吗?

最佳答案

这两种方式并不是同样优选的。

原始方法确保所有初始化都通过主构造函数进行。第二种方式允许不同的路径来初始化一个对象。

在您的示例中,它非常简单。但是通过第二种方式,一个构造函数可以被修改为做一些不同于另一个构造函数的事情,因此你的对象如何初始化取决于选择哪个构造函数。

This question显示允许不同路径导致麻烦的情况。

关于Java构造器设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25272784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com