在变量或类名前面的_(下划线)中是否有标准?

时间:2009-12-14 08:36:14

标签: java coding-style

我见过一些程序员在类名前面使用_(下划线),还有一些程序员在局部变量中使用它。

Java标准是否要求/建议在私有实例变量或类名前面使用_(下划线)?

10 个答案:

答案 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)

  1. 使用现代LCD彩色显示器时,不要使用_,使用Eclipse,Netbeans,IntelliJ,Android Studio等现代IDE。
  2. 使用_ 时,您需要使用仅带绿色或白色文字的旧式单色CRT显示器,或者当您难以识别LCD显示器上的颜色时。
  3. 您的代码协作者的共识优先于上述内容。

答案 9 :(得分:0)

如果该类是包私有的,我在类名前面使用_。因此,在IDE中,我将所有包私有类分组到了包的顶部,我立即看到,这些类不能从包外部访问。