2.1 标识符
标识符(Identifier)是编程语言的“单词”,它是组成程序最基本的元素。标识符可以分为关键字和用户标识符。
2.1.1 关键字
关键字(Keyword)有时又称为保留字(Reserved Word),是被某种编程语言保留的、具有特殊用途的标识符。关键字通常用于表示数据类型、程序结构或修饰变量等,它们对于编译器有着特殊的含义。表2-2列出了JDK 6.0中所有的关键字。
表2-2 JDK 6.0中的关键字
Java中所有的关键字都是小写的。表2-2中最后一行的const和goto被留待扩展,不排除会被后续的JDK新版本支持,但目前尚不能使用。其余大部分关键字的具体作用和用法将在后续章节分别介绍,在此不必记忆。
需要注意的是,C语言支持的sizeof并非Java的关键字,其不受Java支持。此外,随着JDK版本的更新,关键字可能会有所增加,如strictfp和enum分别是JDK 1.2和5.0引入的。
2.1.2 用户标识符
用户标识符(User Identifier)是除关键字之外的任何合法标识符,它们是由用户(即编程者)命名的。用户标识符有时也称为自定义标识符,通常简称为标识符。如同给人起名字一样,标识符的命名也有着一定的规则,只有满足这些规则的标识符才会被编译器接受。
Java的标识符命名规则包括:
(1)能包含数字(0~9)、英文字母(a~z、A~Z)、下画线(_)、美元符号($)。
(2)不能以数字开头。
(3)不能与关键字相同。
表2-3列举了一些合法和非法的标识符。
表2-3 标识符举例
几点说明:
(1)标识符的长度没有限制,但不要过长。
(2)Java的标识符区分大小写(或称大小写敏感),如Max和max是不同的标识符。
(3)除某些特定地方之外,命名应尽量使用英文单词,并做到顾名思义,如CourseInfo、getCurrentValue、userName、user_name。
(4)标识符可以包含下画线而非横线,Java编译器会将后者理解为运算符,从而导致语法错误,如user-name是非法标识符。这是初学者容易犯的错误之一。
(5)一般不推荐使用$字符。若确实需要将标识符分隔成几部分,可使用下画线。
2.1.3 命名惯例和约定
除必须满足的命名规则外,在实际开发中还应遵守一些命名惯例和约定,原因在于:
(1)这些惯例和约定已经被大量实践证明有利于软件代码的编写和维护。
(2)全世界绝大多数Java程序员包括JDK类库的编写者,都遵守着这些惯例和约定。
(3)遵守这些惯例和约定不仅有利于团队中的其他人理解自己编写的代码,也有利于理解自己以前编写的代码。
下面以表格的形式给出这些惯例和约定,见表2-4。
表2-4 Java标识符的命名惯例和约定
尽管命名惯例和约定不是强制性的,但建议读者在初学时就遵守并逐渐形成习惯。除标识符的命名之外,还有一些编程惯例和约定,具体可参考附录C。