我的一個孩子在高中學習 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
提交
取消