Java中的变量命名规范

22
在 PHP 中,我们(至少是好的程序员)总是用小写字母开头来命名通用变量,而使用大写字母来命名类变量/对象以区分它们。同样地,我们使用小写字母来命名一般文件名,但是包含类的文件则使用大写字母来命名。
例如:
<?php
    $number = 123;
    $string = "a string";
    $colors_array = array('red', 'blue', 'red');
    $Cat = New Cat();
?>

Java的命名惯例是否与其他语言一样,即对象以大写字母开头,其余部分为小写字母,还是像我在其他地方读到的那样,所有内容都以小写字母开头?

7个回答

63

在“Java 代码规范”页面上:“此页面的信息仅供存档目的。此页面未被积极维护。文档内的链接可能无法正常工作,信息本身可能已不再有效。此文档的最后修订日期为1999年4月20日”。 - Peter Mortensen

28

通常,所有变量都以小写字母开头:

int count = 32;
double conversionFactor = 1.5d;

有些人喜欢在所有情况下都使用静态常量:

public static final double KILOGRAM_TO_POUND = 2.20462262;

当你处理缩写时,事情变得更加烦人,而且没有真正的标准来确定你应该使用哪种方式:

HTMLHandler myHtmlHandler; 
或者。
HTMLHandler myHTMLHandler.

现在不管怎样,注意类名(Object、String、HTMLHandler)始终以大写字母开头,但是单个对象变量以小写字母开头。


10
我更喜欢使用myHtmlHandler,因为你不必担心一个术语是被视为首字母缩略词还是单词(如LASER、AJAX、GUID)。 - Patrick McElhaney
7
实际上,JDK 的惯例是使用全大写字母表示缩写词。例如:userID、URI、UUID 和 SQLException。我记得这个决定是在 JDK 1.3-1.4 左右做出的,所以你会在 JDK 自身中看到一些不同的惯例混合使用。此外,令人困惑的是,一些 JSR(如 JAX-RS)由于某些原因采用了不同的惯例,但其他主要标准,如 Swing 和 Java EE,都使用全大写字母的惯例。 - crispyduck
我认为,如果一个首字母缩写词已经足够知名,可以使用小写形式而不会有害处:例如getTcpHeader()而不是getTCPHeader()。更不用说这基本上与驼峰命名法/混合大小写不兼容了。 - LegendLength
1
如果我们把它写成“HTML”,那么它就违反了驼峰命名法的基本原则,即大写字母表示新单词。此外,当首字母缩略词出现在单词开头时,很难知道该怎么做。类被称为“HTMLHandler”这个事实是无关紧要的,因为变量的名称不应与其类型相关(例如,“myHtmlHandler”是一个糟糕的名称)。 - John Gowers

9
  • 像这样的变量和方法
  • 像这样的类
  • 像这样的常量

4

惯例是类名以大写字母开头。变量名采用小驼峰命名法。即使该变量引用对象,仍然以小写字母开头。

本页面应该会有所帮助。


0

编程规范实际上取决于你所编写代码的具体场合。

一般来说,从我所见到的情况来看,类名使用大驼峰式命名法(首字母大写),方法名以小写字母开头,变量名则各种各样(有些使用大驼峰式命名法,有些使用小驼峰式命名法,即首字母小写(正如之前的回答所提到的,这是常规做法),还有一些使用匈牙利命名法)。这取决于你的风格以及你所参与项目所采用的风格。


0
你认为在实例方法中使用小驼峰命名法,而在静态方法中使用大驼峰命名法(帕斯卡命名法)怎么样?
我认为这样做非常有帮助,因为在验证哪个方法是静态方法时不会出现任何问题。这是我的建议。

1
听起来是个好主意。如果我在我的代码中这样做,因为它现在还不是一个被接受的标准,那会有什么坏处吗? - Kartik Chugh

0

有些人(不包括我)喜欢通过在实例变量前加上"this."来区分方法变量和实例变量。这也解决了将参数赋值给同名实例变量时出现的问题:

public ConstructorMethod(MyVar variable) {
    this.variable = variable;
}

但是有些人认为你应该始终使用那种模式,但我对此不是太着迷,如果你保持方法和类的简洁,则认为这是过度设计。

此外,有些人对参数使用命名模式。当您从构造函数分配给实例变量时,这再次非常方便:

public ConstructorMethod(MyVar pVariable) {
    variable = pVariable;
}

通常的命名模式是 `pVariable` 或者 `_variable`。有时我会使用这种方式,因为我认为它比另一种方式更易读,但是这种方式的缺点在于会使你的 Javadocs 不太容易阅读。
总之,我不是很喜欢“总是”使用这些模式的想法。它们非常有用,但是如果你真的需要在代码中区分它们,请告诉Eclipse 以不同的颜色显示它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接