我的一个孩子在高中学习 Java 并在他的一项测试中得到了这个:以下哪个是 Java 中的有效标识符?一种。 123java湾 mainC。 java1234d. {abcee. )whoot他回答了b并弄错了。我看着这个问题,并认为这main 是一个有效的标识符,它应该是正确的。我们查看了标识符的 Java规范,它强化了这一点。我们还编写了一个示例程序,其中有一个名为 的变量main以及一个方法。他创建了一个书面反驳,其中包括 Java 文档参考、测试程序,但老师忽略了它并说答案仍然不正确。是main有效的标识符吗?
3 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
public class J { public static void main(String[] args) { String main = "The character sequence \"main\" is an identifier, not a keyword or reserved word."; System.out.println(main); }}
这将编译,并在执行时发出以下输出:
The character sequence "main" is an identifier, not a keyword or reserved word.
字符序列main
是一个标识符,而不是关键字或保留字。
一个标识符是无限长序列的Java字母和爪哇位,其中第一个必须是一个爪哇字母。
标识符:
IdentifierChars 但不是关键字或 BooleanLiteral 或 NullLiteral
标识符字符:
JavaLetter {JavaLetterOrDigit}
Java信件:
任何作为“Java 字母”的 Unicode 字符
JavaLetterOrDigit:
任何 Unicode 字符是“Java 字母或数字”
(java1234
出于同样的原因,字符序列也是一个标识符。)
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
正如其他答案所述
main
是一个有效的 Java 标识符,以及java1234
.
我想令人困惑的原因是该main(String[])
方法经常被 JVM 1用作入口点。但是,这并不意味着令牌main
本身不能用作标识符2。
规范是这样说的,以下声明也是有效的:
一个领域:
private int main;
局部变量:
String main = "";
一个方法:
void main() { ... }
类或接口(尽管不鼓励以小写字母开头的类或接口名称):
class main { ... }
一袋:
package main;
1:正如评论中所指出的,JVM 规范本身并没有强制要求任何特定方法作为入口点,但广泛使用的java
工具经常使用这种方法作为入口点。
2:我通常会避免创建除main(String[])
.
添加回答
举报
0/150
提交
取消