在java中何时初始化示例变量,哪种方法更好?

zsbz8rwp  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(323)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

上个月关门了。
改进这个问题


初始化示例变量(子变量)哪种方式更好?在构造函数中初始化它?

cgfeq70w

cgfeq70w1#

如果数组的长度是恒定的(即始终为26),那么初始化它的时间并不重要。在构造函数体中初始化它会稍微推迟初始化(示例变量初始化表达式发生在构造函数体执行之前),但是在长度不变的情况下,这没有什么区别。
另一方面,如果数组的长度作为参数传递给构造函数,则必须在构造函数体中对其进行初始化:

class TrieNode {
    private TrieNode[] children;
    public TrieNode (int len) {
        this.children = new TrieNode[len];
    }
}
jvidinwx

jvidinwx2#

如果类中没有其他构造函数(默认构造函数除外),那么任何方法都可以。
但是如果还有其他构造函数,并且当使用这些构造函数时,这个变量在类的任何方法中都不需要,那么这个类可能需要重构。
因此,这两种方法没有太大区别,将其保持在类级声明将保持代码更干净,并删除不必要的默认承包商声明。
附加信息:避免在代码中使用幻数,如26。给它一个合理的名字,这样其他开发者就会明白为什么只有26个孩子。如果可以更改,那么可以考虑使用参数化构造函数将大小作为输入参数传递。

相关问题