我见过一些程序员在类名前面使用_
(下划线),还有一些程序员在局部变量中使用它。
Java标准是否要求/建议在私有实例变量或类名前面使用_(下划线)?
答案 0 :(得分:40)
我认为像这样的工件是预IDE和C ++复古。不要这样做。
答案 1 :(得分:27)
这是个人品味的问题。
Martin Fowler似乎喜欢它。我并不在乎它 - 它打破了阅读模式,它传达的信息已经巧妙地通过IDE中的颜色告知。
我已尝试使用_
作为保存方法返回结果的变量的名称。它非常简洁,但我最终认为名称result
更好。
所以,让你的同事就你最喜欢的事情达成一致,然后就这样做。
答案 2 :(得分:17)
如果您想遵循最佳实践java,请使用此处列出的代码约定http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
即,私有成员变量名称没有下划线。
但是,就个人而言,只要适用一致性,我就不会对此进行任何讨论。
答案 3 :(得分:6)
许多人(包括我自己)在字段名称前面使用_。这样做的原因是很容易将它们与局部变量区分开来。然而,在IDE的时代,这并不是必需的,因为语法高亮显示了这一点。在类名前面使用下划线是错误的。按照惯例,类名以大写字母开头。
答案 4 :(得分:3)
很多人都是例如变量,因为它使它们脱颖而出。就个人而言,我讨厌它主要是因为方法在大多数情况下应该不超过10行代码(我几乎不会超过20行)。如果你看不到一个变量在10行以下不是本地的,那就有错误:-)
如果你有100行方法,并且你没有在块的顶部声明它们所用的所有变量,我可以看到你为什么要使用_来区分它们...当然,如同大多数事情,如果它伤害然后停止这样做!
答案 5 :(得分:1)
在变量之前使用_有助于在一种情况下,如果开发人员想要在有意或无意中使用标准/关键字作为变量名称。如果它有另外一个角色,它就不会产生冲突。
答案 6 :(得分:1)
似乎是一种惯例,声明如果在方法名称中使用下划线作为初始字符,则无法覆盖该方法。
例如,在JSP的上下文中,无法覆盖_jspService()方法。
但是,我找不到任何符合上述惯例的文件。
答案 7 :(得分:0)
我同意这里的其他人......如果你只是使用命名标准,它会违反标准,并没有真正为你买任何东西。如果您需要知道类和局部变量之间的区别,请尝试命名约定,如lVariableName,其中l用于表示它是本地的。对我来说这是不必要的,因为IDE突出显示已足够,但可能对某些人有用。
答案 8 :(得分:0)
答案 9 :(得分:0)
如果该类是包私有的,我在类名前面使用_
。因此,在IDE中,我将所有包私有类分组到了包的顶部,我立即看到,这些类不能从包外部访问。