我的一个孩子在高中学习 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
提交
取消
