Java原语在O的内存中总是有一个默认值(布尔值为假= 0)。那么,如果由于这种机制甚至具有预定义值,为什么不对它们进行初始化被认为是一种不好的做法呢?在数组中,即使初始化了一个新的int [8],其中的所有值都没有真正初始化,但这并不令人不满......
答案 0 :(得分:4)
通过显式定义一个值,很明显你在那个执行点预期了那个值。如果没有,另一个读者可能会将其解释为好像您忘记初始化此变量或者您不关心那个点(并且稍后会将其设置在其他地方)。
换句话说,它是某种隐含的文档。通常,编写详细代码以获得更好的可读性被认为是更好的做法;即从不使用方法名称的缩写,写出来!
此外,如果您必须编写行注释(//
),您几乎总是可以通过将以下代码包装到命名良好的方法中来替换它们。隐含文档ftw! :)
答案 1 :(得分:4)
初始化所有实例变量。如果未指定值,则使用默认值。
谁说不初始化实例变量是不好的做法?我倾向于不初始化它们,除非它是一个非默认值,但它不是一个大问题。这是关于可读性和减少“代码噪声”提高可读性。无用的初始化是代码噪声恕我直言。
答案 2 :(得分:1)
假设我正在编写一个小游戏并且每个实体(敌人,玩家等)以100健康状态开始,每次创建新实体时都没有必要使用sethealth(100)方法。
所以基本上,imo除非你需要使用零以外的某个值,否则我不会初始化它们。对于布尔人来说也是如此,除非你需要一些真实的东西,没有必要接触它。
答案 3 :(得分:0)
这不是不好的做法,我见过有经验的开发人员,他们做了初始化,而那些人没有。
我首选的是初始化,因为它表明开发人员花了很多时间考虑启动时的值应该是什么,而不仅仅是依赖编译器使用默认值
答案 4 :(得分:-1)
初始化类的实例变量是不错的做法。但是初始化它是必要的,因为如果你忘记或不初始化它,默认值就是分配给它 当我们想要类实例变量/ s时,在初始化类对象时必须有一些值。