我理解为什么标识符不能以数字或' - '开头。
为什么不能'#','。' (点),和':'(冒号)用作标识符的一部分?
答案 0 :(得分:1)
来自Java Language Specification:
标识符是Java字母和Java数字的无限长度序列,第一个必须是Java字母。
...“Java letter”是方法
Character.isJavaIdentifierStart(int)
返回true的字符。
那些不是Java字母,所以你不能从那些开始。 $
是,但这种用法更多地保留给内部类。
答案 1 :(得分:1)
“不应该”不是和确切的定义。更好地使用“绝不”或“不能”。
一旦我们更改了问题,我们就可以回答。原因是这种方式定义了java编程语言。那么,你可以“为什么java创建者定义了这样的规则?”
可以有几个答案。最相关的(IMHO)之一是所有编程语言(至少是我所知道的)对标识符中可以使用的字符的定义大致相同:
字母,数字或下划线,从字母或下划线开始。
顺便说一句,java扩展了这条规则,因为它允许使用包括国家字母表在内的任何字母,而通常其他(至少较旧的)编程语言仅限于拉丁字母。
在您编写的所有字符中,我认为只有#
理论上可以包含在允许用于标识符的字符列表中,但是他们决定不这样做,可能会考虑将来可能的Java版本这个角色将成为语言的一部分。
我认为在标识符中使用,
和;
显然是不可能的。想想for
运算符。
答案 2 :(得分:0)
您不能使用为JVM保留的任何charecter,它将这些charecter标识为seprators分隔符。它与使用" new"基本相同。关键字作为变量的名称,这是Java中的非法操作。