为什么不能在标识符中使用"#"、"."、":"?

  • 本文关键字:不能 标识符 java scjp
  • 更新时间 :
  • 英文 :


我理解为什么标识符不能以数字或"-"开头。

为什么不能'#'、'。(点)和":"(冒号)用作标识符的一部分?

"

不应该"不是和确切的定义。最好使用"不得"或"不能"。

一旦我们改变了一个问题,我们就可以回答它。原因是这样定义了Java编程语言。所以,你可以说"为什么Java创建者定义了这样的规则?

可以有几个答案。最相关的(恕我直言)之一是所有编程语言(至少我知道的那些)对标识符中可以使用的字符都有或多或少相同的定义:

字母、数字或下划线

,从字母或下划线开始。

顺便说一下,java扩展了这个规则,因为它允许使用任何字母,包括国家字母,而通常其他(至少是较旧的)编程语言将其限制为仅拉丁字母。

在您编写的所有字符中,我认为理论上只有#可以包含在允许用于标识符的字符列表中,但他们决定不这样做,可能是考虑到 java 的未来版本,其中这个字符可能将成为语言的一部分。

我认为在标识符中使用,;显然是不可能的。考虑一下for操作员。

来自Java语言规范:

标识符是无限长度的 Java 字母和 Java 数字序列,其中第一个必须是 Java 字母

。"Java 字母"是方法Character.isJavaIdentifierStart(int)返回 true 的字符。

这些

不是Java字母,所以你不能从这些字母开始。 $但这种用法更保留给内部类。

不能使用为 JVM 保留的任何字符,这会将这些字符标识为分隔符。 它与使用"new"关键字作为变量名称基本相同,这在Java中是非法操作。

最新更新