程序 (program) 里需要自定义的标识符 (identifier) 名称非常多,例如类 (class) 名称、属性 (field) 名称、方法 (method) 名称、参数 (parameter) 名称、局部变量 (local variable) 名称等等.

有些名称是自定义的,有些名称则属于 Java API 中已经定义好的,例如 String 、 args 等。 Java API 是官方随编译器 (compiler) 提供的程序库 (library) ,大多是类定义,提供非常多样的功能,例如数据结构、时间处理、输入输出、图形介面、网络通讯等等,我们可以在需要时引入需要的类,无须自行开发相同或类似的程序。
我们自定义的标识符应避免与 API 中的相同,如果我们定义相同的标识符名称,虽然可以通过编译,但容易造成混淆,因此应避免,例如以下程序
// 使用与 API 相同名称的变量
public class WrongName {
public static void main(String[] args) {
String a = "22";
System.out.println();
System.out.println(a.getClass());
System.out.println();
// 变量 String 与 API 中的名称相同
Integer String = 22;
System.out.println(String.getClass());
System.out.println();
}
}
/* 文件名: WrongName.java
作者: 52ij
时间: 6月 2015 */编译后执行,结果如下

我们在 main() 方法中,使用 String 当类名称声明变量 (variable) ,也用 String 当变量名称,以 Integer 类声明,虽然可以顺利编译执行,然而容易造成混淆,因此我们不建议这样使用。
事实上,由于 Java 直接支援 Unicode 编码,因此标识符可以使用任何 Unicode 字符,如
// 使用中文当类名称
public class 中文类 {
int 中文属性 = 22;
public static void main(String[] args) {
中文类 中文变量 = new 中文类();
System.out.println();
System.out.println(中文变量.中文属性);
System.out.println();
}
}编译后执行,如下
C:\>javac 中文类.java C:\>java 中文类 22 C:\>
但我们不建议这么做,因为标识符采用中文的话,一来输入法的中文为全形字符,很多运算符 (operator) 与内建名称仍是采用键盘上直接输入的英文、数字或符号,这些是半形字符,没有留意到的话就很容易弄错,再来大量的已开发模块 (module) 的标识符仍是采英文的命名习惯,所以要与国外接轨的话,自己命名的标识符仍是采用英文字母比较 ok 啰!
习惯上是采用英文二十六的大小写字母为主,另加上数字、下划线及金钱符号,如下表
| _ | $ | ||||
| a | b | c | d | e | f |
| g | h | i | j | k | l |
| m | n | o | p | q | r |
| s | t | u | v | w | x |
| y | z | ||||
| A | B | C | D | E | F |
| G | H | I | J | K | L |
| M | N | O | P | Q | R |
| S | T | U | V | W | X |
| Y | Z | ||||
| 0 | 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 |
类以英文大写字母开头,若有多个英文单字组成,采取大骆驼拼写法 (upper camel case)
SimpleGame
MyStory
ThreadTestDrive
RunThreads
方法或变量(包括参数、属性等)以英文小写字母开头,若有多个英文单字组成,采取小骆驼拼写法 (lower camel case)
actionPerformed
setUpNetworking
getField
myField
当然,也可以用下划线链结每个英文单字,这就看个人偏好!
有没有感觉到每一行程序都以分号结尾,若是漏打分号的话,编译器还会中断编译,并且提供警告信息。分号代表什么意思呢?有分号结尾的源程序,在 Java 称之为语句 (statement) ,简单的语句可由表达式 (expression) 组成,接下来我们继续讨论表达式与语句吧!
中英文术语对照
程序 program
标识符 identifier
类 class
属性 field
方法 method
参数 parameter
局部变量 local variable
编译器 compiler
程序库 library
变量 variable
运算符 operator
模块 module
大骆驼拼写法 upper camel case
小骆驼拼写法 lower camel case
语句 statement
表达式 expression
重点整理
1、标识符为程序中自定义的名称,自定义的标识符名称应该避免与 API 中相同。
2、任何 Unicode 字符都可以拿来当 Java 的标识符名称,习惯上仍是以英文二十六个字母大小写、数字、金钱符号与底线为主。
3、标识符命名大都用有意义的英文单字组合,类的定义多半采大骆驼拼写法,方法或变量多半采小骆驼拼写法。
4、分号为语句的结尾,漏打分号会产生编译错误。
问题与讨论
1、数字可以当作标识符的起始字符吗?
2、为什么命名变量要用有意义的英文单词?
3、大骆驼拼写法跟小骆驼拼写法的差别在哪里?为什么要有不同的命名习惯?
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
